Go to the documentation of this file.00001
00002
00003
00004
00005 #ifndef __I_MATERIAL_RENDERER_SERVICES_H_INCLUDED__
00006 #define __I_MATERIAL_RENDERER_SERVICES_H_INCLUDED__
00007
00008 #include "SMaterial.h"
00009 #include "S3DVertex.h"
00010
00011 namespace irr
00012 {
00013 namespace video
00014 {
00015
00016 class IVideoDriver;
00017
00018
00020 class IMaterialRendererServices
00021 {
00022 public:
00023
00025 virtual ~IMaterialRendererServices() {}
00026
00028
00037 virtual void setBasicRenderStates(const SMaterial& material,
00038 const SMaterial& lastMaterial,
00039 bool resetAllRenderstates) = 0;
00040
00042
00066 virtual bool setVertexShaderConstant(const c8* name, const f32* floats, int count) = 0;
00067
00069 virtual bool setVertexShaderConstant(const c8* name, const bool* bools, int count) = 0;
00070
00072 virtual bool setVertexShaderConstant(const c8* name, const s32* ints, int count) = 0;
00073
00075
00080 virtual void setVertexShaderConstant(const f32* data, s32 startRegister, s32 constantAmount=1) = 0;
00081
00083
00090 virtual bool setPixelShaderConstant(const c8* name, const f32* floats, int count) = 0;
00091
00093 virtual bool setPixelShaderConstant(const c8* name, const bool* bools, int count) = 0;
00094
00096 virtual bool setPixelShaderConstant(const c8* name, const s32* ints, int count) = 0;
00097
00099
00104 virtual void setPixelShaderConstant(const f32* data, s32 startRegister, s32 constantAmount=1) = 0;
00105
00107
00108 virtual IVideoDriver* getVideoDriver() = 0;
00109 };
00110
00111 }
00112 }
00113
00114 #endif
00115