1 /*---------------------------------------------------------------------------*
2 Project: NintendoWare
3 File: gfx_ShaderUniforms.cpp
4
5 Copyright (C)2009-2011 Nintendo/HAL Laboratory, Inc. All rights reserved.
6
7 These coded instructions, statements, and computer programs contain proprietary
8 information of Nintendo and/or its licensed developers and are protected by
9 national and international copyright laws. They may not be disclosed to third
10 parties or copied or duplicated in any form, in whole or in part, without the
11 prior written consent of Nintendo.
12
13 The content herein is highly confidential and should be handled accordingly.
14
15 $Revision: 31311 $
16 *---------------------------------------------------------------------------*/
17 #include "precompiled.h"
18
19 #include <nw/gfx/gfx_ShaderProgram.h>
20 #include <nw/gfx/gfx_ShaderUniforms.h>
21
22 namespace nw
23 {
24 namespace gfx
25 {
26
27 #if defined(NW_GFX_PROGRAM_OBJECT_ENABLED)
28
29 void
BuildUniformLocations(GLuint programObject)30 ShaderUniformLocation::BuildUniformLocations(GLuint programObject)
31 {
32 m_UniformLocations.reserve(SHADER_UNIFORM_COUNT);
33 m_UniformLocations.push_back(glGetUniformLocation(programObject, "ProjMtx"));
34 m_UniformLocations.push_back(glGetUniformLocation(programObject, "ViewMtx"));
35 m_UniformLocations.push_back(glGetUniformLocation(programObject, "WrldMtx"));
36 m_UniformLocations.push_back(glGetUniformLocation(programObject, "NormMtx"));
37 m_UniformLocations.push_back(glGetUniformLocation(programObject, "PosOffs"));
38 m_UniformLocations.push_back(glGetUniformLocation(programObject, "IrScale"));
39 m_UniformLocations.push_back(glGetUniformLocation(programObject, "TexcMap"));
40 m_UniformLocations.push_back(glGetUniformLocation(programObject, "TexMtx0"));
41 m_UniformLocations.push_back(glGetUniformLocation(programObject, "TexMtx1"));
42 m_UniformLocations.push_back(glGetUniformLocation(programObject, "TexMtx2"));
43 m_UniformLocations.push_back(glGetUniformLocation(programObject, "TexTran"));
44 m_UniformLocations.push_back(glGetUniformLocation(programObject, "MatAmbi"));
45 m_UniformLocations.push_back(glGetUniformLocation(programObject, "MatDiff"));
46 m_UniformLocations.push_back(glGetUniformLocation(programObject, "HslGCol"));
47 m_UniformLocations.push_back(glGetUniformLocation(programObject, "HslSCol"));
48 m_UniformLocations.push_back(glGetUniformLocation(programObject, "HslSDir"));
49 m_UniformLocations.push_back(glGetUniformLocation(programObject, "UnivReg"));
50 m_UniformLocations.push_back(glGetUniformLocation(programObject, "IsSmoSk"));
51 m_UniformLocations.push_back(glGetUniformLocation(programObject, "IsRgdSk"));
52 m_UniformLocations.push_back(glGetUniformLocation(programObject, "IsHemiL"));
53 m_UniformLocations.push_back(glGetUniformLocation(programObject, "IsHemiO"));
54 m_UniformLocations.push_back(glGetUniformLocation(programObject, "IsVertA"));
55 m_UniformLocations.push_back(glGetUniformLocation(programObject, "IsBoneW"));
56 m_UniformLocations.push_back(glGetUniformLocation(programObject, "UvMap0"));
57 m_UniformLocations.push_back(glGetUniformLocation(programObject, "UvMap1"));
58 m_UniformLocations.push_back(glGetUniformLocation(programObject, "UvMap2"));
59 m_UniformLocations.push_back(glGetUniformLocation(programObject, "IsVertL"));
60 m_UniformLocations.push_back(glGetUniformLocation(programObject, "IsTex1"));
61 m_UniformLocations.push_back(glGetUniformLocation(programObject, "IsTex2"));
62 m_UniformLocations.push_back(glGetUniformLocation(programObject, "IsQuate"));
63 m_UniformLocations.push_back(glGetUniformLocation(programObject, "LightCt"));
64 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[0].combineRgb"));
65 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[1].combineRgb"));
66 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[2].combineRgb"));
67 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[3].combineRgb"));
68 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[4].combineRgb"));
69 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[5].combineRgb"));
70 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[0].combineAlpha"));
71 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[1].combineAlpha"));
72 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[2].combineAlpha"));
73 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[3].combineAlpha"));
74 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[4].combineAlpha"));
75 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[5].combineAlpha"));
76 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[0].srcRgb"));
77 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[1].srcRgb"));
78 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[2].srcRgb"));
79 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[3].srcRgb"));
80 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[4].srcRgb"));
81 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[5].srcRgb"));
82 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[0].srcAlpha"));
83 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[1].srcAlpha"));
84 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[2].srcAlpha"));
85 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[3].srcAlpha"));
86 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[4].srcAlpha"));
87 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[5].srcAlpha"));
88 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[0].operandRgb"));
89 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[1].operandRgb"));
90 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[2].operandRgb"));
91 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[3].operandRgb"));
92 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[4].operandRgb"));
93 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[5].operandRgb"));
94 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[0].operandAlpha"));
95 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[1].operandAlpha"));
96 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[2].operandAlpha"));
97 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[3].operandAlpha"));
98 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[4].operandAlpha"));
99 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[5].operandAlpha"));
100 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[1].bufferInput"));
101 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[2].bufferInput"));
102 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[3].bufferInput"));
103 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[4].bufferInput"));
104 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[0].scaleRgb"));
105 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[1].scaleRgb"));
106 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[2].scaleRgb"));
107 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[3].scaleRgb"));
108 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[4].scaleRgb"));
109 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[5].scaleRgb"));
110 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[0].scaleAlpha"));
111 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[1].scaleAlpha"));
112 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[2].scaleAlpha"));
113 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[3].scaleAlpha"));
114 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[4].scaleAlpha"));
115 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[5].scaleAlpha"));
116 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[0].constRgba"));
117 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[1].constRgba"));
118 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[2].constRgba"));
119 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[3].constRgba"));
120 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[4].constRgba"));
121 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[5].constRgba"));
122 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_TexEnv[0].bufferColor"));
123 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLighting.enabled"));
124 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLighting.ambient"));
125 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentMaterial.samplerD0"));
126 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentMaterial.samplerD1"));
127 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentMaterial.samplerRR"));
128 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentMaterial.samplerRG"));
129 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentMaterial.samplerRB"));
130 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentMaterial.samplerSP"));
131 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentMaterial.samplerFR"));
132 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentMaterial.emission"));
133 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentMaterial.ambient"));
134 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentMaterial.diffuse"));
135 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentMaterial.specular0"));
136 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentMaterial.specular1"));
137 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[0].enabled"));
138 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[1].enabled"));
139 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[2].enabled"));
140 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[3].enabled"));
141 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[4].enabled"));
142 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[5].enabled"));
143 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[6].enabled"));
144 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[7].enabled"));
145 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[0].ambient"));
146 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[1].ambient"));
147 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[2].ambient"));
148 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[3].ambient"));
149 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[4].ambient"));
150 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[5].ambient"));
151 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[6].ambient"));
152 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[7].ambient"));
153 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[0].diffuse"));
154 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[1].diffuse"));
155 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[2].diffuse"));
156 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[3].diffuse"));
157 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[4].diffuse"));
158 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[5].diffuse"));
159 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[6].diffuse"));
160 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[7].diffuse"));
161 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[0].specular0"));
162 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[1].specular0"));
163 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[2].specular0"));
164 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[3].specular0"));
165 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[4].specular0"));
166 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[5].specular0"));
167 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[6].specular0"));
168 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[7].specular0"));
169 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[0].specular1"));
170 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[1].specular1"));
171 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[2].specular1"));
172 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[3].specular1"));
173 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[4].specular1"));
174 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[5].specular1"));
175 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[6].specular1"));
176 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[7].specular1"));
177 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[0].position"));
178 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[1].position"));
179 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[2].position"));
180 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[3].position"));
181 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[4].position"));
182 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[5].position"));
183 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[6].position"));
184 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[7].position"));
185 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[0].spotDirection"));
186 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[1].spotDirection"));
187 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[2].spotDirection"));
188 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[3].spotDirection"));
189 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[4].spotDirection"));
190 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[5].spotDirection"));
191 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[6].spotDirection"));
192 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[7].spotDirection"));
193 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[0].shadowed"));
194 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[1].shadowed"));
195 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[2].shadowed"));
196 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[3].shadowed"));
197 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[4].shadowed"));
198 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[5].shadowed"));
199 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[6].shadowed"));
200 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[7].shadowed"));
201 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[0].geomFactor0"));
202 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[1].geomFactor0"));
203 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[2].geomFactor0"));
204 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[3].geomFactor0"));
205 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[4].geomFactor0"));
206 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[5].geomFactor0"));
207 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[6].geomFactor0"));
208 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[7].geomFactor0"));
209 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[0].geomFactor1"));
210 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[1].geomFactor1"));
211 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[2].geomFactor1"));
212 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[3].geomFactor1"));
213 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[4].geomFactor1"));
214 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[5].geomFactor1"));
215 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[6].geomFactor1"));
216 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[7].geomFactor1"));
217 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[0].twoSideDiffuse"));
218 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[1].twoSideDiffuse"));
219 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[2].twoSideDiffuse"));
220 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[3].twoSideDiffuse"));
221 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[4].twoSideDiffuse"));
222 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[5].twoSideDiffuse"));
223 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[6].twoSideDiffuse"));
224 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[7].twoSideDiffuse"));
225 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[0].spotEnabled"));
226 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[1].spotEnabled"));
227 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[2].spotEnabled"));
228 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[3].spotEnabled"));
229 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[4].spotEnabled"));
230 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[5].spotEnabled"));
231 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[6].spotEnabled"));
232 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[7].spotEnabled"));
233 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[0].distanceAttenuationEnabled"));
234 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[1].distanceAttenuationEnabled"));
235 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[2].distanceAttenuationEnabled"));
236 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[3].distanceAttenuationEnabled"));
237 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[4].distanceAttenuationEnabled"));
238 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[5].distanceAttenuationEnabled"));
239 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[6].distanceAttenuationEnabled"));
240 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[7].distanceAttenuationEnabled"));
241 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[0].distanceAttenuationBias"));
242 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[1].distanceAttenuationBias"));
243 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[2].distanceAttenuationBias"));
244 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[3].distanceAttenuationBias"));
245 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[4].distanceAttenuationBias"));
246 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[5].distanceAttenuationBias"));
247 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[6].distanceAttenuationBias"));
248 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[7].distanceAttenuationBias"));
249 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[0].distanceAttenuationScale"));
250 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[1].distanceAttenuationScale"));
251 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[2].distanceAttenuationScale"));
252 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[3].distanceAttenuationScale"));
253 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[4].distanceAttenuationScale"));
254 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[5].distanceAttenuationScale"));
255 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[6].distanceAttenuationScale"));
256 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[7].distanceAttenuationScale"));
257 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[0].samplerSP"));
258 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[1].samplerSP"));
259 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[2].samplerSP"));
260 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[3].samplerSP"));
261 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[4].samplerSP"));
262 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[5].samplerSP"));
263 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[6].samplerSP"));
264 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[7].samplerSP"));
265 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[0].samplerDA"));
266 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[1].samplerDA"));
267 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[2].samplerDA"));
268 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[3].samplerDA"));
269 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[4].samplerDA"));
270 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[5].samplerDA"));
271 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[6].samplerDA"));
272 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragmentLightSource[7].samplerDA"));
273 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.absLutInputD0"));
274 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.absLutInputD1"));
275 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.absLutInputRR"));
276 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.absLutInputRG"));
277 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.absLutInputRB"));
278 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.absLutInputSP"));
279 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.absLutInputFR"));
280 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.lutInputD0"));
281 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.lutInputD1"));
282 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.lutInputRR"));
283 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.lutInputRG"));
284 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.lutInputRB"));
285 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.lutInputSP"));
286 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.lutInputFR"));
287 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.lutScaleD0"));
288 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.lutScaleD1"));
289 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.lutScaleRR"));
290 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.lutScaleRG"));
291 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.lutScaleRB"));
292 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.lutScaleSP"));
293 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.lutScaleFR"));
294 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.shadowSelector"));
295 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.bumpSelector"));
296 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.bumpMode"));
297 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.bumpRenorm"));
298 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.config"));
299 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.invertShadow"));
300 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.shadowPrimary"));
301 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.shadowSecondary"));
302 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.shadowAlpha"));
303 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.fresnelSelector"));
304 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.clampHighlights"));
305 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.lutEnabledSP"));
306 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.lutEnabledD0"));
307 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.lutEnabledD1"));
308 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_LightEnv.lutEnabledRefl"));
309 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[0].perspectiveShadow"));
310 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[0].shadowZScale"));
311 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[0].shadowZBias"));
312 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[0].samplerType"));
313 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[1].samplerType"));
314 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[2].samplerType"));
315 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[3].samplerType"));
316 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[2].texcoord"));
317 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[3].texcoord"));
318 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[3].ptRgbMap"));
319 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[3].ptAlphaMap"));
320 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[3].ptAlphaSeparate"));
321 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[3].ptClampU"));
322 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[3].ptClampV"));
323 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[3].ptShiftU"));
324 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[3].ptShiftV"));
325 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[3].ptMinFilter"));
326 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[3].ptTexWidth"));
327 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[3].ptTexOffset"));
328 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[3].ptTexBias"));
329 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[3].ptNoiseEnable"));
330 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[3].ptNoiseU"));
331 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[3].ptNoiseV"));
332 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[3].ptSamplerRgbMap"));
333 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[3].ptSamplerAlphaMap"));
334 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[3].ptSamplerNoiseMap"));
335 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[3].ptSamplerR"));
336 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[3].ptSamplerG"));
337 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[3].ptSamplerB"));
338 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Texture[3].ptSamplerA"));
339 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Gas.lightXY"));
340 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Gas.lightZ"));
341 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Gas.deltaZ"));
342 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Gas.autoAcc"));
343 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Gas.accMax"));
344 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Gas.shadingDensitySrc"));
345 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Gas.colorLutInput"));
346 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Gas.samplerTR"));
347 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Gas.samplerTG"));
348 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Gas.samplerTB"));
349 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Gas.attenuation"));
350 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Fog.mode"));
351 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Fog.color"));
352 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Fog.zFlip"));
353 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Fog.sampler"));
354 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragOperation.enableClippingPlane"));
355 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragOperation.clippingPlane"));
356 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragOperation.enableAlphaTest"));
357 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragOperation.alphaRefValue"));
358 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragOperation.alphaTestFunc"));
359 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragOperation.mode"));
360 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragOperation.wScale"));
361 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragOperation.penumbraScale"));
362 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_FragOperation.penumbraBias"));
363 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Point.viewport"));
364 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Point.distanceAttenuation"));
365 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Line.width"));
366 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Silhouette.width"));
367 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Silhouette.scaleByW"));
368 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Silhouette.color"));
369 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Silhouette.frontFaceCCW"));
370 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Silhouette.acceptEmptyTriangles"));
371 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Silhouette.openEdgeColor"));
372 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Silhouette.openEdgeWidth"));
373 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Silhouette.openEdgeDepthBias"));
374 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Silhouette.openEdgeWidthScaleByW"));
375 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Silhouette.openEdgeDepthBiasScaleByW"));
376 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Subdivision.level"));
377 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_Subdivision.fragmentLightingEnabled"));
378 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_PartSys.color"));
379 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_PartSys.aspect"));
380 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_PartSys.time"));
381 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_PartSys.speed"));
382 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_PartSys.countMax"));
383 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_PartSys.randSeed"));
384 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_PartSys.randomCore"));
385 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_PartSys.distanceAttenuation"));
386 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_PartSys.viewport"));
387 m_UniformLocations.push_back(glGetUniformLocation(programObject, "dmp_PartSys.pointSize"));
388 }
389
390 //----------------------------------------
ShaderUniformLocation(os::IAllocator * allocator)391 ShaderUniformLocation::ShaderUniformLocation(os::IAllocator* allocator)
392 : GfxObject(allocator)
393 {
394 }
395
396 //----------------------------------------
397 ShaderUniformLocation*
Create(os::IAllocator * allocator)398 ShaderUniformLocation::Create(os::IAllocator* allocator)
399 {
400 void* memory = allocator->Alloc(sizeof(ShaderUniformLocation));
401 NW_NULL_ASSERT(memory);
402
403 return new(memory) ShaderUniformLocation(allocator);
404 }
405
406 #endif
407
408 } // namespace gfx
409 } // namespace nw
410