Public feed
#599940
class MyShaderCallBack : public video::IShaderConstantSetCallBack
{
public:
virtual void OnSetConstants(video::IMaterialRendererServices* services, s32 userData)
{
video::IVideoDriver* driver = services->getVideoDriver();
// set inverted world matrix
// if we are using highlevel shaders (the user can select this when
// starting the program), we must set the constants by name.
core::matrix4 invWorld = driver->getTransform(video::ETS_WORLD);
invWorld.makeInverse();
// set clip matrix
core::matrix4 worldViewProj;
worldViewProj = driver->getTransform(video::ETS_PROJECTION);
worldViewProj *= driver->getTransform(video::ETS_VIEW);
worldViewProj *= driver->getTransform(video::ETS_WORLD);
//services->setVertexShaderConstant("mInvWorld", invWorld.pointer(), 16);
services->setVertexShaderConstant("view_proj_matrix", worldViewProj.pointer(), 16);
worldViewProj = driver->getTransform(video::ETS_VIEW);
services->setVertexShaderConstant("view_matrix", worldViewProj.pointer(), 16);
}
};