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