|
IrrlichtEngine
|
00001 // Copyright (C) 2002-2011 Nikolaus Gebhardt 00002 // This file is part of the "Irrlicht Engine". 00003 // For conditions of distribution and use, see copyright notice in irrlicht.h 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 00074 virtual void setVertexShaderConstant(const f32* data, s32 startRegister, s32 constantAmount=1) = 0; 00075 00077 00084 virtual bool setPixelShaderConstant(const c8* name, const f32* floats, int count) = 0; 00085 00087 00092 virtual void setPixelShaderConstant(const f32* data, s32 startRegister, s32 constantAmount=1) = 0; 00093 00095 00096 virtual IVideoDriver* getVideoDriver() = 0; 00097 }; 00098 00099 } // end namespace video 00100 } // end namespace irr 00101 00102 #endif 00103