00001
00002
00003
00004
00005 #ifndef __I_MATERIAL_RENDERER_SERVICES_H_INCLUDED__
00006 #define __I_MATERIAL_RENDERER_SERVICES_H_INCLUDED__
00007
00008 #include "IReferenceCounted.h"
00009 #include "SMaterial.h"
00010 #include "S3DVertex.h"
00011
00012 namespace irr
00013 {
00014 namespace video
00015 {
00016
00017 class IVideoDriver;
00018
00019
00021 class IMaterialRendererServices
00022 {
00023 public:
00024
00026 virtual ~IMaterialRendererServices() {}
00027
00029
00038 virtual void setBasicRenderStates(const SMaterial& material,
00039 const SMaterial& lastMaterial,
00040 bool resetAllRenderstates) = 0;
00041
00043
00067 virtual bool setVertexShaderConstant(const c8* name, const f32* floats, int count) = 0;
00068
00070
00075 virtual void setVertexShaderConstant(const f32* data, s32 startRegister, s32 constantAmount=1) = 0;
00076
00078
00085 virtual bool setPixelShaderConstant(const c8* name, const f32* floats, int count) = 0;
00086
00088
00093 virtual void setPixelShaderConstant(const f32* data, s32 startRegister, s32 constantAmount=1) = 0;
00094
00096
00097 virtual IVideoDriver* getVideoDriver() = 0;
00098 };
00099
00100 }
00101 }
00102
00103 #endif
00104