virtual String getName() { return "ConstantMultFeature"; } // add this code class ConstMultFeatureHdls : public ShaderFeatureConstHandles { GFXShaderConstHandle* mMultConstSC; public: ConstMultFeatureHdls( GFXShader *shader ) { mMultConstSC = shader->getShaderConstHandle("$multConst"); } virtual void setConsts( SceneState *state, const SceneGraphData &sgData, GFXShaderConstBuffer *buffer ) { if( mMultConstSC->isValid() && sgData.multConstant ) { buffer->set( mMultConstSC, *sgData.multConstant ); } } }; virtual ShaderFeatureConstHandles* createConstHandles( GFXShader *shader ) { // This memory is cleaned up via a delete call which takes place // in ShaderRenderPassData::reset() return new ConstMultFeatureHdls( shader ); } // done added code