@@ -179,6 +179,8 @@ TEST_F(ShaderManagerTest, ColorEffectValue)
179
179
static const QString uniformName = " u_" + effectName;
180
180
static const ShaderManager::Effect effect = ShaderManager::Effect::Color;
181
181
182
+ std::unordered_map<ShaderManager::Effect, float > values;
183
+
182
184
QOpenGLFunctions glF (&m_context);
183
185
glF.initializeOpenGLFunctions ();
184
186
ShaderManager manager;
@@ -190,28 +192,34 @@ TEST_F(ShaderManagerTest, ColorEffectValue)
190
192
std::unordered_map<ShaderManager::Effect, double > effects = { { effect, 64.9 } };
191
193
program.bind ();
192
194
manager.setUniforms (&program, 0 , effects);
195
+ manager.getUniformValuesForEffects (effects, values);
193
196
194
197
GLfloat value = 0 .0f ;
195
198
glF.glGetUniformfv (program.programId (), program.uniformLocation (uniformName), &value);
196
199
ASSERT_EQ (value, 0 .3245f );
200
+ ASSERT_EQ (values.at (effect), value);
197
201
198
202
// Below the minimum
199
203
effects[effect] = -395.7 ;
200
204
program.bind ();
201
205
manager.setUniforms (&program, 0 , effects);
206
+ manager.getUniformValuesForEffects (effects, values);
202
207
203
208
value = 0 .0f ;
204
209
glF.glGetUniformfv (program.programId (), program.uniformLocation (uniformName), &value);
205
210
ASSERT_EQ (std::round (value * 100 .0f ) / 100 .0f , 0 .02f );
211
+ ASSERT_EQ (values.at (effect), value);
206
212
207
213
// Above the maximum
208
214
effects[effect] = 579.05 ;
209
215
program.bind ();
210
216
manager.setUniforms (&program, 0 , effects);
217
+ manager.getUniformValuesForEffects (effects, values);
211
218
212
219
value = 0 .0f ;
213
220
glF.glGetUniformfv (program.programId (), program.uniformLocation (uniformName), &value);
214
221
ASSERT_EQ (std::round (value * 100 .0f ) / 100 .0f , 0 .9f );
222
+ ASSERT_EQ (values.at (effect), value);
215
223
216
224
program.release ();
217
225
}
@@ -222,6 +230,8 @@ TEST_F(ShaderManagerTest, BrightnessEffectValue)
222
230
static const QString uniformName = " u_" + effectName;
223
231
static const ShaderManager::Effect effect = ShaderManager::Effect::Brightness;
224
232
233
+ std::unordered_map<ShaderManager::Effect, float > values;
234
+
225
235
QOpenGLFunctions glF (&m_context);
226
236
glF.initializeOpenGLFunctions ();
227
237
ShaderManager manager;
@@ -233,28 +243,34 @@ TEST_F(ShaderManagerTest, BrightnessEffectValue)
233
243
std::unordered_map<ShaderManager::Effect, double > effects = { { effect, 4.6 } };
234
244
program.bind ();
235
245
manager.setUniforms (&program, 0 , effects);
246
+ manager.getUniformValuesForEffects (effects, values);
236
247
237
248
GLfloat value = 0 .0f ;
238
249
glF.glGetUniformfv (program.programId (), program.uniformLocation (uniformName), &value);
239
250
ASSERT_EQ (value, 0 .046f );
251
+ ASSERT_EQ (values.at (effect), value);
240
252
241
253
// Below the minimum
242
254
effects[effect] = -102.9 ;
243
255
program.bind ();
244
256
manager.setUniforms (&program, 0 , effects);
257
+ manager.getUniformValuesForEffects (effects, values);
245
258
246
259
value = 0 .0f ;
247
260
glF.glGetUniformfv (program.programId (), program.uniformLocation (uniformName), &value);
248
261
ASSERT_EQ (value, -1 .0f );
262
+ ASSERT_EQ (values.at (effect), value);
249
263
250
264
// Above the maximum
251
265
effects[effect] = 353.2 ;
252
266
program.bind ();
253
267
manager.setUniforms (&program, 0 , effects);
268
+ manager.getUniformValuesForEffects (effects, values);
254
269
255
270
value = 0 .0f ;
256
271
glF.glGetUniformfv (program.programId (), program.uniformLocation (uniformName), &value);
257
272
ASSERT_EQ (value, 1 .0f );
273
+ ASSERT_EQ (values.at (effect), value);
258
274
259
275
program.release ();
260
276
}
@@ -265,6 +281,8 @@ TEST_F(ShaderManagerTest, GhostEffectValue)
265
281
static const QString uniformName = " u_" + effectName;
266
282
static const ShaderManager::Effect effect = ShaderManager::Effect::Ghost;
267
283
284
+ std::unordered_map<ShaderManager::Effect, float > values;
285
+
268
286
QOpenGLFunctions glF (&m_context);
269
287
glF.initializeOpenGLFunctions ();
270
288
ShaderManager manager;
@@ -276,28 +294,34 @@ TEST_F(ShaderManagerTest, GhostEffectValue)
276
294
std::unordered_map<ShaderManager::Effect, double > effects = { { effect, 58.5 } };
277
295
program.bind ();
278
296
manager.setUniforms (&program, 0 , effects);
297
+ manager.getUniformValuesForEffects (effects, values);
279
298
280
299
GLfloat value = 0 .0f ;
281
300
glF.glGetUniformfv (program.programId (), program.uniformLocation (uniformName), &value);
282
301
ASSERT_EQ (std::round (value * 1000 .0f ) / 1000 .0f , 0 .415f );
302
+ ASSERT_EQ (values.at (effect), value);
283
303
284
304
// Below the minimum
285
305
effects[effect] = -20.8 ;
286
306
program.bind ();
287
307
manager.setUniforms (&program, 0 , effects);
308
+ manager.getUniformValuesForEffects (effects, values);
288
309
289
310
value = 0 .0f ;
290
311
glF.glGetUniformfv (program.programId (), program.uniformLocation (uniformName), &value);
291
312
ASSERT_EQ (value, 1 .0f );
313
+ ASSERT_EQ (values.at (effect), value);
292
314
293
315
// Above the maximum
294
316
effects[effect] = 248.2 ;
295
317
program.bind ();
296
318
manager.setUniforms (&program, 0 , effects);
319
+ manager.getUniformValuesForEffects (effects, values);
297
320
298
321
value = 0 .0f ;
299
322
glF.glGetUniformfv (program.programId (), program.uniformLocation (uniformName), &value);
300
323
ASSERT_EQ (value, 0 .0f );
324
+ ASSERT_EQ (values.at (effect), value);
301
325
302
326
program.release ();
303
327
}
0 commit comments