Irrlicht 3D Engine
IMaterialRendererServices.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2012 Nikolaus Gebhardt
2 // This file is part of the "Irrlicht Engine".
3 // For conditions of distribution and use, see copyright notice in irrlicht.h
4 
5 #ifndef __I_MATERIAL_RENDERER_SERVICES_H_INCLUDED__
6 #define __I_MATERIAL_RENDERER_SERVICES_H_INCLUDED__
7 
8 #include "SMaterial.h"
9 #include "S3DVertex.h"
10 
11 namespace irr
12 {
13 namespace video
14 {
15 
16 class IVideoDriver;
17 
18 
21 {
22 public:
23 
26 
28 
37  virtual void setBasicRenderStates(const SMaterial& material,
38  const SMaterial& lastMaterial,
39  bool resetAllRenderstates) = 0;
40 
42 
66  virtual bool setVertexShaderConstant(const c8* name, const f32* floats, int count) = 0;
67 
69  virtual bool setVertexShaderConstant(const c8* name, const bool* bools, int count) = 0;
70 
72  virtual bool setVertexShaderConstant(const c8* name, const s32* ints, int count) = 0;
73 
75 
80  virtual void setVertexShaderConstant(const f32* data, s32 startRegister, s32 constantAmount=1) = 0;
81 
83 
90  virtual bool setPixelShaderConstant(const c8* name, const f32* floats, int count) = 0;
91 
93  virtual bool setPixelShaderConstant(const c8* name, const bool* bools, int count) = 0;
94 
96  virtual bool setPixelShaderConstant(const c8* name, const s32* ints, int count) = 0;
97 
99 
104  virtual void setPixelShaderConstant(const f32* data, s32 startRegister, s32 constantAmount=1) = 0;
105 
107 
108  virtual IVideoDriver* getVideoDriver() = 0;
109 };
110 
111 } // end namespace video
112 } // end namespace irr
113 
114 #endif
115 
Interface providing some methods for changing advanced, internal states of a IVideoDriver.
float f32
32 bit floating point variable.
Definition: irrTypes.h:104
virtual bool setVertexShaderConstant(const c8 *name, const f32 *floats, int count)=0
Sets a constant for the vertex shader based on a name.
char c8
8 bit character variable.
Definition: irrTypes.h:31
virtual IVideoDriver * getVideoDriver()=0
Get pointer to the IVideoDriver interface.
Everything in the Irrlicht Engine can be found in this namespace.
Definition: aabbox3d.h:12
signed int s32
32 bit signed variable.
Definition: irrTypes.h:66
virtual void setBasicRenderStates(const SMaterial &material, const SMaterial &lastMaterial, bool resetAllRenderstates)=0
Can be called by an IMaterialRenderer to make its work easier.
Interface to driver which is able to perform 2d and 3d graphics functions.
Definition: IVideoDriver.h:256
virtual bool setPixelShaderConstant(const c8 *name, const f32 *floats, int count)=0
Sets a constant for the pixel shader based on a name.
Struct for holding parameters for a material renderer.
Definition: SMaterial.h:226