]> git.lizzy.rs Git - irrlicht.git/blob - source/Irrlicht/COGLES2FixedPipelineRenderer.h
f5882f17ea9f5f7c0d26fe54372e6cad85f222d9
[irrlicht.git] / source / Irrlicht / COGLES2FixedPipelineRenderer.h
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
4 \r
5 #ifndef __C_OGLES2_FIXED_PIPELINE_SHADER_H_INCLUDED__\r
6 #define __C_OGLES2_FIXED_PIPELINE_SHADER_H_INCLUDED__\r
7 \r
8 #include "IrrCompileConfig.h"\r
9 \r
10 #ifdef _IRR_COMPILE_WITH_OGLES2_\r
11 \r
12 #include "IShaderConstantSetCallBack.h"\r
13 #include "IMaterialRendererServices.h"\r
14 \r
15 namespace irr\r
16 {\r
17 namespace video\r
18 {\r
19 \r
20 class COGLES2MaterialBaseCB : public IShaderConstantSetCallBack\r
21 {\r
22 public:\r
23         COGLES2MaterialBaseCB();\r
24 \r
25         virtual void OnSetMaterial(const SMaterial& material);\r
26         virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);\r
27 \r
28 protected:\r
29         bool FirstUpdateBase;\r
30 \r
31         s32 WVPMatrixID;\r
32         s32 WVMatrixID;\r
33         s32 NMatrixID;\r
34 \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
41 \r
42         s32 FogEnableID;\r
43         s32 FogTypeID;\r
44         s32 FogColorID;\r
45         s32 FogStartID;\r
46         s32 FogEndID;\r
47         s32 FogDensityID;\r
48 \r
49         s32 ThicknessID;\r
50 \r
51         bool LightEnable;\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
58 \r
59         s32 FogEnable;\r
60         s32 FogType;\r
61         SColorf FogColor;\r
62         f32 FogStart;\r
63         f32 FogEnd;\r
64         f32 FogDensity;\r
65 \r
66         f32 Thickness;\r
67 };\r
68 \r
69 class COGLES2MaterialSolidCB : public COGLES2MaterialBaseCB\r
70 {\r
71 public:\r
72         COGLES2MaterialSolidCB();\r
73 \r
74         virtual void OnSetMaterial(const SMaterial& material);\r
75         virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);\r
76 \r
77 protected:\r
78         bool FirstUpdate;\r
79 \r
80         s32 TMatrix0ID;\r
81         s32 AlphaRefID;\r
82         s32 TextureUsage0ID;\r
83         s32 TextureUnit0ID;\r
84 \r
85         f32 AlphaRef;\r
86         s32 TextureUsage0;\r
87         s32 TextureUnit0;\r
88 };\r
89 \r
90 class COGLES2MaterialSolid2CB : public COGLES2MaterialBaseCB\r
91 {\r
92 public:\r
93         COGLES2MaterialSolid2CB();\r
94 \r
95         virtual void OnSetMaterial(const SMaterial& material);\r
96         virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);\r
97 \r
98 protected:\r
99         bool FirstUpdate;\r
100 \r
101         s32 TMatrix0ID;\r
102         s32 TMatrix1ID;\r
103         s32 TextureUsage0ID;\r
104         s32 TextureUsage1ID;\r
105         s32 TextureUnit0ID;\r
106         s32 TextureUnit1ID;\r
107 \r
108         s32 TextureUsage0;\r
109         s32 TextureUsage1;\r
110         s32 TextureUnit0;\r
111         s32 TextureUnit1;\r
112 };\r
113 \r
114 class COGLES2MaterialLightmapCB : public COGLES2MaterialBaseCB\r
115 {\r
116 public:\r
117         COGLES2MaterialLightmapCB(float modulate);\r
118 \r
119         virtual void OnSetMaterial(const SMaterial& material);\r
120         virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);\r
121 \r
122 protected:\r
123         bool FirstUpdate;\r
124 \r
125         s32 TMatrix0ID;\r
126         s32 TMatrix1ID;\r
127         s32 ModulateID;\r
128         s32 TextureUsage0ID;\r
129         s32 TextureUsage1ID;\r
130         s32 TextureUnit0ID;\r
131         s32 TextureUnit1ID;\r
132 \r
133         f32 Modulate;\r
134         s32 TextureUsage0;\r
135         s32 TextureUsage1;\r
136         s32 TextureUnit0;\r
137         s32 TextureUnit1;\r
138 };\r
139 \r
140 class COGLES2MaterialReflectionCB : public COGLES2MaterialBaseCB\r
141 {\r
142 public:\r
143         COGLES2MaterialReflectionCB();\r
144 \r
145         virtual void OnSetMaterial(const SMaterial& material);\r
146         virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);\r
147 \r
148 protected:\r
149         bool FirstUpdate;\r
150 \r
151         s32 TMatrix0ID;\r
152         s32 TextureUsage0ID;\r
153         s32 TextureUsage1ID;\r
154         s32 TextureUnit0ID;\r
155         s32 TextureUnit1ID;\r
156 \r
157         s32 TextureUsage0;\r
158         s32 TextureUsage1;\r
159         s32 TextureUnit0;\r
160         s32 TextureUnit1;\r
161 };\r
162 \r
163 class COGLES2MaterialOneTextureBlendCB : public COGLES2MaterialBaseCB\r
164 {\r
165 public:\r
166         COGLES2MaterialOneTextureBlendCB();\r
167 \r
168         virtual void OnSetMaterial(const SMaterial& material);\r
169         virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);\r
170 \r
171 protected:\r
172         bool FirstUpdate;\r
173 \r
174         s32 TMatrix0ID;\r
175         s32 BlendTypeID;\r
176         s32 TextureUsage0ID;\r
177         s32 TextureUnit0ID;\r
178 \r
179         s32 BlendType;\r
180         s32 TextureUsage0;\r
181         s32 TextureUnit0;\r
182 };\r
183 \r
184 }\r
185 }\r
186 \r
187 #endif\r
188 #endif\r
189 \r