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
5 #ifndef __C_OGLES2_FIXED_PIPELINE_SHADER_H_INCLUDED__
\r
6 #define __C_OGLES2_FIXED_PIPELINE_SHADER_H_INCLUDED__
\r
8 #include "IrrCompileConfig.h"
\r
10 #ifdef _IRR_COMPILE_WITH_OGLES2_
\r
12 #include "IShaderConstantSetCallBack.h"
\r
13 #include "IMaterialRendererServices.h"
\r
20 class COGLES2MaterialBaseCB : public IShaderConstantSetCallBack
\r
23 COGLES2MaterialBaseCB();
\r
25 virtual void OnSetMaterial(const SMaterial& material);
\r
26 virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);
\r
29 bool FirstUpdateBase;
\r
35 s32 GlobalAmbientID;
\r
36 s32 MaterialAmbientID;
\r
37 s32 MaterialDiffuseID;
\r
38 s32 MaterialEmissiveID;
\r
39 s32 MaterialSpecularID;
\r
40 s32 MaterialShininessID;
\r
52 SColorf GlobalAmbient;
\r
53 SColorf MaterialAmbient;
\r
54 SColorf MaterialDiffuse;
\r
55 SColorf MaterialEmissive;
\r
56 SColorf MaterialSpecular;
\r
57 f32 MaterialShininess;
\r
69 class COGLES2MaterialSolidCB : public COGLES2MaterialBaseCB
\r
72 COGLES2MaterialSolidCB();
\r
74 virtual void OnSetMaterial(const SMaterial& material);
\r
75 virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);
\r
82 s32 TextureUsage0ID;
\r
90 class COGLES2MaterialSolid2CB : public COGLES2MaterialBaseCB
\r
93 COGLES2MaterialSolid2CB();
\r
95 virtual void OnSetMaterial(const SMaterial& material);
\r
96 virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);
\r
103 s32 TextureUsage0ID;
\r
104 s32 TextureUsage1ID;
\r
105 s32 TextureUnit0ID;
\r
106 s32 TextureUnit1ID;
\r
114 class COGLES2MaterialLightmapCB : public COGLES2MaterialBaseCB
\r
117 COGLES2MaterialLightmapCB(float modulate);
\r
119 virtual void OnSetMaterial(const SMaterial& material);
\r
120 virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);
\r
128 s32 TextureUsage0ID;
\r
129 s32 TextureUsage1ID;
\r
130 s32 TextureUnit0ID;
\r
131 s32 TextureUnit1ID;
\r
140 class COGLES2MaterialReflectionCB : public COGLES2MaterialBaseCB
\r
143 COGLES2MaterialReflectionCB();
\r
145 virtual void OnSetMaterial(const SMaterial& material);
\r
146 virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);
\r
152 s32 TextureUsage0ID;
\r
153 s32 TextureUsage1ID;
\r
154 s32 TextureUnit0ID;
\r
155 s32 TextureUnit1ID;
\r
163 class COGLES2MaterialOneTextureBlendCB : public COGLES2MaterialBaseCB
\r
166 COGLES2MaterialOneTextureBlendCB();
\r
168 virtual void OnSetMaterial(const SMaterial& material);
\r
169 virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);
\r
176 s32 TextureUsage0ID;
\r
177 s32 TextureUnit0ID;
\r