Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members | Tutorials

irr::video::IMaterialRendererServices Class Reference

Interface providing some methods for changing advanced, internal states of a IVideoDriver. More...

#include <IMaterialRendererServices.h>

List of all members.

Public Member Functions

virtual IVideoDrivergetVideoDriver ()=0
 Get pointer to the IVideoDriver interface.
virtual void setBasicRenderStates (const SMaterial &material, const SMaterial &lastMaterial, bool resetAllRenderstates)=0
 Can be called by an IMaterialRenderer to make its work easier.
virtual void setPixelShaderConstant (const f32 *data, s32 startRegister, s32 constantAmount=1)=0
 Sets a pixel shader constant.
virtual bool setPixelShaderConstant (const c8 *name, const f32 *floats, int count)=0
 Sets a constant for the pixel shader based on a name.
virtual void setVertexShaderConstant (const f32 *data, s32 startRegister, s32 constantAmount=1)=0
 Sets a vertex shader constant.
virtual bool setVertexShaderConstant (const c8 *name, const f32 *floats, int count)=0
 Sets a constant for the vertex shader based on a name.
virtual ~IMaterialRendererServices ()
 Destructor.

Detailed Description

Interface providing some methods for changing advanced, internal states of a IVideoDriver.

Definition at line 20 of file IMaterialRendererServices.h.


Constructor & Destructor Documentation

virtual irr::video::IMaterialRendererServices::~IMaterialRendererServices (  )  [inline, virtual]

Destructor.

Definition at line 25 of file IMaterialRendererServices.h.


Member Function Documentation

virtual IVideoDriver* irr::video::IMaterialRendererServices::getVideoDriver (  )  [pure virtual]

Get pointer to the IVideoDriver interface.

Returns:
Pointer to the IVideoDriver interface
virtual void irr::video::IMaterialRendererServices::setBasicRenderStates ( const SMaterial material,
const SMaterial lastMaterial,
bool  resetAllRenderstates 
) [pure virtual]

Can be called by an IMaterialRenderer to make its work easier.

Sets all basic renderstates if needed. Basic render states are diffuse, ambient, specular, and emissive color, specular power, bilinear and trilinear filtering, wireframe mode, grouraudshading, lighting, zbuffer, zwriteenable, backfaceculling and fog enabling.

Parameters:
material The new material to be used.
lastMaterial The material used until now.
resetAllRenderstates Set to true if all renderstates should be set, regardless of their current state.
virtual void irr::video::IMaterialRendererServices::setPixelShaderConstant ( const f32 data,
s32  startRegister,
s32  constantAmount = 1 
) [pure virtual]

Sets a pixel shader constant.

Can be used if you created a shader using pixel/vertex shader assembler or ARB_fragment_program or ARB_vertex_program.

Parameters:
data Data to be set in the constants
startRegister First register to be set.
constantAmount Amount of registers to be set. One register consists of 4 floats.
virtual bool irr::video::IMaterialRendererServices::setPixelShaderConstant ( const c8 name,
const f32 floats,
int  count 
) [pure virtual]

Sets a constant for the pixel shader based on a name.

This can be used if you used a high level shader language like GLSL or HLSL to create a shader. See setVertexShaderConstant() for an example on how to use this.

Parameters:
name Name of the variable
floats Pointer to array of floats
count Amount of floats in array.
Returns:
True if successful.
virtual void irr::video::IMaterialRendererServices::setVertexShaderConstant ( const f32 data,
s32  startRegister,
s32  constantAmount = 1 
) [pure virtual]

Sets a vertex shader constant.

Can be used if you created a shader using pixel/vertex shader assembler or ARB_fragment_program or ARB_vertex_program.

Parameters:
data,: Data to be set in the constants
startRegister,: First register to be set
constantAmount,: Amount of registers to be set. One register consists of 4 floats.
virtual bool irr::video::IMaterialRendererServices::setVertexShaderConstant ( const c8 name,
const f32 floats,
int  count 
) [pure virtual]

Sets a constant for the vertex shader based on a name.

This can be used if you used a high level shader language like GLSL or HLSL to create a shader. Example: If you created a shader which has variables named 'mWorldViewProj' (containing the WorldViewProjection matrix) and another one named 'fTime' containing one float, you can set them in your IShaderConstantSetCallBack derived class like this:

        virtual void OnSetConstants(video::IMaterialRendererServices* services, s32 userData)
        {
                video::IVideoDriver* driver = services->getVideoDriver();

                f32 time = (f32)os::Timer::getTime()/100000.0f;
                services->setVertexShaderConstant("fTime", &time, 1);

                core::matrix4 worldViewProj(driver->getTransform(video::ETS_PROJECTION));
                worldViewProj *= driver->getTransform(video::ETS_VIEW);
                worldViewProj *= driver->getTransform(video::ETS_WORLD);
                services->setVertexShaderConstant("mWorldViewProj", worldViewProj.M, 16);
        }
Parameters:
name Name of the variable
floats Pointer to array of floats
count Amount of floats in array.
Returns:
True if successful.

The documentation for this class was generated from the following file:

The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2010 by Nikolaus Gebhardt. Generated on Sun Oct 24 12:42:09 2010 by Doxygen (1.6.2)