Irrlicht 3D Engine
 
Loading...
Searching...
No Matches
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
11namespace irr
12{
13namespace video
14{
15
16class IVideoDriver;
17
18
21{
22public:
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
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.
virtual void setVertexShaderConstant(const f32 *data, s32 startRegister, s32 constantAmount=1)=0
Sets a vertex shader constant.
virtual bool setPixelShaderConstant(const c8 *name, const bool *bools, int count)=0
Bool interface for the above.
virtual bool setVertexShaderConstant(const c8 *name, const f32 *floats, int count)=0
Sets a constant for the vertex shader based on a name.
virtual bool setVertexShaderConstant(const c8 *name, const s32 *ints, int count)=0
Int interface for the above.
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 setBasicRenderStates(const SMaterial &material, const SMaterial &lastMaterial, bool resetAllRenderstates)=0
Can be called by an IMaterialRenderer to make its work easier.
virtual bool setPixelShaderConstant(const c8 *name, const s32 *ints, int count)=0
Int interface for the above.
virtual IVideoDriver * getVideoDriver()=0
Get pointer to the IVideoDriver interface.
virtual bool setVertexShaderConstant(const c8 *name, const bool *bools, int count)=0
Bool interface for the above.
virtual void setPixelShaderConstant(const f32 *data, s32 startRegister, s32 constantAmount=1)=0
Sets a pixel shader constant.
Interface to driver which is able to perform 2d and 3d graphics functions.
Struct for holding parameters for a material renderer.
Definition SMaterial.h:227
Everything in the Irrlicht Engine can be found in this namespace.
Definition aabbox3d.h:13
float f32
32 bit floating point variable.
Definition irrTypes.h:104
char c8
8 bit character variable.
Definition irrTypes.h:31
signed int s32
32 bit signed variable.
Definition irrTypes.h:66