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