1 // Copyright (C) 2014 Patryk Nadrowski
2 // This file is part of the "Irrlicht Engine".
3 // For conditions of distribution and use, see copyright notice in Irrlicht.h
7 #include "IShaderConstantSetCallBack.h"
8 #include "IMaterialRendererServices.h"
15 class COpenGL3MaterialBaseCB : public IShaderConstantSetCallBack
18 COpenGL3MaterialBaseCB();
20 virtual void OnSetMaterial(const SMaterial& material);
21 virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);
31 s32 MaterialAmbientID;
32 s32 MaterialDiffuseID;
33 s32 MaterialEmissiveID;
34 s32 MaterialSpecularID;
35 s32 MaterialShininessID;
47 SColorf GlobalAmbient;
48 SColorf MaterialAmbient;
49 SColorf MaterialDiffuse;
50 SColorf MaterialEmissive;
51 SColorf MaterialSpecular;
52 f32 MaterialShininess;
64 class COpenGL3MaterialSolidCB : public COpenGL3MaterialBaseCB
67 COpenGL3MaterialSolidCB();
69 virtual void OnSetMaterial(const SMaterial& material);
70 virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);
85 class COpenGL3MaterialSolid2CB : public COpenGL3MaterialBaseCB
88 COpenGL3MaterialSolid2CB();
90 virtual void OnSetMaterial(const SMaterial& material);
91 virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);
109 class COpenGL3MaterialLightmapCB : public COpenGL3MaterialBaseCB
112 COpenGL3MaterialLightmapCB(float modulate);
114 virtual void OnSetMaterial(const SMaterial& material);
115 virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);
135 class COpenGL3MaterialReflectionCB : public COpenGL3MaterialBaseCB
138 COpenGL3MaterialReflectionCB();
140 virtual void OnSetMaterial(const SMaterial& material);
141 virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);
158 class COpenGL3MaterialOneTextureBlendCB : public COpenGL3MaterialBaseCB
161 COpenGL3MaterialOneTextureBlendCB();
163 virtual void OnSetMaterial(const SMaterial& material);
164 virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);