Operating System: :OpenSUse Tumbleweed :
Render System: :OpenGL3+:
HI, long time no see !
I try to make the dynamic shadows optional for OpenDungeons.
I came up with the following code :
Code: Select all
// donno if the below should be here -- paul424 :
auto myIter = Ogre::MaterialManager::getSingleton().getResourceIterator();
while(myIter.hasMoreElements())
{
auto myPointer = myIter.peekNextValue();
Ogre::SharedPtr<Ogre::Material> myCastPointer = std::dynamic_pointer_cast<Ogre::Material> (myPointer);
Ogre::Technique* technique;
technique = myCastPointer->getTechnique(0);
technique->getPass(technique->getNumPasses() - 1)->getFragmentProgramParameters()->setNamedConstant("shadowingEnabled",true) ;
myIter.getNext();
}
Code: Select all
#2 0x00007ffff720c706 in Ogre::ExceptionFactory::throwException (code=code@entry=Ogre::Exception::ERR_INVALIDPARAMS,
desc="This pass does not have this program type assigned!",
src="getGpuProgramParameters", file=file@entry=0x7ffff74909b0 "/home/tom/Downloads/ogre-1.12.10/OgreMain/src/OgrePass.cpp", line=line@entry=1302)
at /home/tom/Downloads/ogre-1.12.10/OgreMain/include/OgreException.h:281
Or some materials don't have a proper fragment program at all ?
please explain ....