| Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members |
#include <IShaderConstantSetCallBack.h>
Inheritance diagram for irr::video::IShaderConstantSetCallBack:

Public Member Functions | |
| virtual void | OnSetConstants (IMaterialRendererServices *services, s32 userData)=0 |
| Called by the engine when the vertex and/or pixel shader constants for an material renderer should be set. | |
| virtual | ~IShaderConstantSetCallBack () |
| Destructor. | |
Implement this interface in an own class and pass a pointer to it to one of the methods in IGPUProgrammingServices when creating a shader. The OnSetConstants method will be called every frame now.
Definition at line 20 of file IShaderConstantSetCallBack.h.
|
|
Destructor.
Definition at line 25 of file IShaderConstantSetCallBack.h. |
|
||||||||||||
|
Called by the engine when the vertex and/or pixel shader constants for an material renderer should be set. Implement the IShaderConstantSetCallBack in an own class and implement your own OnSetConstants method using the given IMaterialRendererServices interface. Pass a pointer to this class to one of the methods in IGPUProgrammingServices when creating a shader. The OnSetConstants method will now be called every time before geometry is being drawn using your shader material. A sample implementation would look like this: virtual void OnSetConstants(video::IMaterialRendererServices* services, s32 userData) { video::IVideoDriver* driver = services->getVideoDriver(); // set clip matrix at register 4 core::matrix4 worldViewProj(driver->getTransform(video::ETS_PROJECTION)); worldViewProj *= driver->getTransform(video::ETS_VIEW); worldViewProj *= driver->getTransform(video::ETS_WORLD); services->setVertexShaderConstant(&worldViewProj.M[0], 4, 4); // for high level shading languages, this would be another solution: //services->setVertexShaderConstant("mWorldViewProj", worldViewProj.M, 16); // set some light color at register 9 video::SColorf col(0.0f,1.0f,1.0f,0.0f); services->setVertexShaderConstant(reinterpret_cast<const f32*>(&col), 9, 1); // for high level shading languages, this would be another solution: //services->setVertexShaderConstant("myColor", reinterpret_cast<f32*>(&col), 4); }
|
| The Irrlicht
Engine Documentation © 2003-2008 by Nikolaus Gebhardt. Generated
on Sun Sep 21 08:58:02 2008 by Doxygen
(1.4.2) |