| 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