Public feed #599940

Unnamed

public text v1 · immutable
Raw Edit
·published 2007-07-02 15:04 UTC
rendered paste body
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);



        }
};