Irrlicht 3D Engine
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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