Skip to main content
PyOgre run-time error FAQ        

PyOgre common run-time error FAQ

Copy to clipboard
if techniquePass.hasVertexProgram() and techniquePass.getVertexProgram().isSkeletalAnimationIncluded(): TypeError: No Python class registered for C++ class class Ogre::GpuProgramPtr

This is a PyOgre developement bug and should be reported to the development team (likely an old return_value policy that should not be there).

Copy to clipboard
ArgumentError: Python argument types in ControllerManager.createController(ControllerManager, FrameTimeControllerValue, LightWibbler, WaveformControllerFunction) did not match C++ signature: createController(class Ogre::ControllerManager {lvalue}, class Ogre::SharedPtr<class Ogre::ControllerValue<float> >, class Ogre::SharedPtr<class Ogre::ControllerValue<float> >, class Ogre::SharedPtr<class Ogre::ControllerFunction<float> >)

You likely forgot to call the base class constructor when subclass ogre class. You must always call base class constructo as follow:

Copy to clipboard
class LightWibbler(ogre.RealControllerValue): def __init__( self, light, billboard, minColour, maxColour, minSize, maxSize ): ogre.RealControllerValue.__init__( self ) # your init-code here

When inheriting in Python, calling the constructor (init) of the superclass is more than just a good habit. ๐Ÿ˜Š