Irrlicht 3D Engine
IMaterialRendererServices.h
Go to the documentation of this file.
00001 // Copyright (C) 2002-2012 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     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 } // end namespace video
00112 } // end namespace irr
00113 
00114 #endif
00115