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
9 #ifdef _IRR_COMPILE_WITH_OGLES2_
\r
11 #include "IShaderConstantSetCallBack.h"
\r
12 #include "IMaterialRendererServices.h"
\r
19 class COGLES2MaterialBaseCB : public IShaderConstantSetCallBack
\r
22 COGLES2MaterialBaseCB();
\r
24 virtual void OnSetMaterial(const SMaterial& material);
\r
25 virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);
\r
28 bool FirstUpdateBase;
\r
34 s32 GlobalAmbientID;
\r
35 s32 MaterialAmbientID;
\r
36 s32 MaterialDiffuseID;
\r
37 s32 MaterialEmissiveID;
\r
38 s32 MaterialSpecularID;
\r
39 s32 MaterialShininessID;
\r
51 SColorf GlobalAmbient;
\r
52 SColorf MaterialAmbient;
\r
53 SColorf MaterialDiffuse;
\r
54 SColorf MaterialEmissive;
\r
55 SColorf MaterialSpecular;
\r
56 f32 MaterialShininess;
\r
68 class COGLES2MaterialSolidCB : public COGLES2MaterialBaseCB
\r
71 COGLES2MaterialSolidCB();
\r
73 virtual void OnSetMaterial(const SMaterial& material);
\r
74 virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);
\r
81 s32 TextureUsage0ID;
\r
89 class COGLES2MaterialSolid2CB : public COGLES2MaterialBaseCB
\r
92 COGLES2MaterialSolid2CB();
\r
94 virtual void OnSetMaterial(const SMaterial& material);
\r
95 virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);
\r
102 s32 TextureUsage0ID;
\r
103 s32 TextureUsage1ID;
\r
104 s32 TextureUnit0ID;
\r
105 s32 TextureUnit1ID;
\r
113 class COGLES2MaterialLightmapCB : public COGLES2MaterialBaseCB
\r
116 COGLES2MaterialLightmapCB(float modulate);
\r
118 virtual void OnSetMaterial(const SMaterial& material);
\r
119 virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);
\r
127 s32 TextureUsage0ID;
\r
128 s32 TextureUsage1ID;
\r
129 s32 TextureUnit0ID;
\r
130 s32 TextureUnit1ID;
\r
139 class COGLES2MaterialReflectionCB : public COGLES2MaterialBaseCB
\r
142 COGLES2MaterialReflectionCB();
\r
144 virtual void OnSetMaterial(const SMaterial& material);
\r
145 virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);
\r
151 s32 TextureUsage0ID;
\r
152 s32 TextureUsage1ID;
\r
153 s32 TextureUnit0ID;
\r
154 s32 TextureUnit1ID;
\r
162 class COGLES2MaterialOneTextureBlendCB : public COGLES2MaterialBaseCB
\r
165 COGLES2MaterialOneTextureBlendCB();
\r
167 virtual void OnSetMaterial(const SMaterial& material);
\r
168 virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);
\r
175 s32 TextureUsage0ID;
\r
176 s32 TextureUnit0ID;
\r