@@ -179,6 +179,8 @@ TEST_F(ShaderManagerTest, ColorEffectValue)
179179 static const QString uniformName = " u_" + effectName;
180180 static const ShaderManager::Effect effect = ShaderManager::Effect::Color;
181181
182+ std::unordered_map<ShaderManager::Effect, float > values;
183+
182184 QOpenGLFunctions glF (&m_context);
183185 glF.initializeOpenGLFunctions ();
184186 ShaderManager manager;
@@ -190,28 +192,34 @@ TEST_F(ShaderManagerTest, ColorEffectValue)
190192 std::unordered_map<ShaderManager::Effect, double > effects = { { effect, 64.9 } };
191193 program.bind ();
192194 manager.setUniforms (&program, 0 , effects);
195+ manager.getUniformValuesForEffects (effects, values);
193196
194197 GLfloat value = 0 .0f ;
195198 glF.glGetUniformfv (program.programId (), program.uniformLocation (uniformName), &value);
196199 ASSERT_EQ (value, 0 .3245f );
200+ ASSERT_EQ (values.at (effect), value);
197201
198202 // Below the minimum
199203 effects[effect] = -395.7 ;
200204 program.bind ();
201205 manager.setUniforms (&program, 0 , effects);
206+ manager.getUniformValuesForEffects (effects, values);
202207
203208 value = 0 .0f ;
204209 glF.glGetUniformfv (program.programId (), program.uniformLocation (uniformName), &value);
205210 ASSERT_EQ (std::round (value * 100 .0f ) / 100 .0f , 0 .02f );
211+ ASSERT_EQ (values.at (effect), value);
206212
207213 // Above the maximum
208214 effects[effect] = 579.05 ;
209215 program.bind ();
210216 manager.setUniforms (&program, 0 , effects);
217+ manager.getUniformValuesForEffects (effects, values);
211218
212219 value = 0 .0f ;
213220 glF.glGetUniformfv (program.programId (), program.uniformLocation (uniformName), &value);
214221 ASSERT_EQ (std::round (value * 100 .0f ) / 100 .0f , 0 .9f );
222+ ASSERT_EQ (values.at (effect), value);
215223
216224 program.release ();
217225}
@@ -222,6 +230,8 @@ TEST_F(ShaderManagerTest, BrightnessEffectValue)
222230 static const QString uniformName = " u_" + effectName;
223231 static const ShaderManager::Effect effect = ShaderManager::Effect::Brightness;
224232
233+ std::unordered_map<ShaderManager::Effect, float > values;
234+
225235 QOpenGLFunctions glF (&m_context);
226236 glF.initializeOpenGLFunctions ();
227237 ShaderManager manager;
@@ -233,28 +243,34 @@ TEST_F(ShaderManagerTest, BrightnessEffectValue)
233243 std::unordered_map<ShaderManager::Effect, double > effects = { { effect, 4.6 } };
234244 program.bind ();
235245 manager.setUniforms (&program, 0 , effects);
246+ manager.getUniformValuesForEffects (effects, values);
236247
237248 GLfloat value = 0 .0f ;
238249 glF.glGetUniformfv (program.programId (), program.uniformLocation (uniformName), &value);
239250 ASSERT_EQ (value, 0 .046f );
251+ ASSERT_EQ (values.at (effect), value);
240252
241253 // Below the minimum
242254 effects[effect] = -102.9 ;
243255 program.bind ();
244256 manager.setUniforms (&program, 0 , effects);
257+ manager.getUniformValuesForEffects (effects, values);
245258
246259 value = 0 .0f ;
247260 glF.glGetUniformfv (program.programId (), program.uniformLocation (uniformName), &value);
248261 ASSERT_EQ (value, -1 .0f );
262+ ASSERT_EQ (values.at (effect), value);
249263
250264 // Above the maximum
251265 effects[effect] = 353.2 ;
252266 program.bind ();
253267 manager.setUniforms (&program, 0 , effects);
268+ manager.getUniformValuesForEffects (effects, values);
254269
255270 value = 0 .0f ;
256271 glF.glGetUniformfv (program.programId (), program.uniformLocation (uniformName), &value);
257272 ASSERT_EQ (value, 1 .0f );
273+ ASSERT_EQ (values.at (effect), value);
258274
259275 program.release ();
260276}
@@ -265,6 +281,8 @@ TEST_F(ShaderManagerTest, GhostEffectValue)
265281 static const QString uniformName = " u_" + effectName;
266282 static const ShaderManager::Effect effect = ShaderManager::Effect::Ghost;
267283
284+ std::unordered_map<ShaderManager::Effect, float > values;
285+
268286 QOpenGLFunctions glF (&m_context);
269287 glF.initializeOpenGLFunctions ();
270288 ShaderManager manager;
@@ -276,28 +294,34 @@ TEST_F(ShaderManagerTest, GhostEffectValue)
276294 std::unordered_map<ShaderManager::Effect, double > effects = { { effect, 58.5 } };
277295 program.bind ();
278296 manager.setUniforms (&program, 0 , effects);
297+ manager.getUniformValuesForEffects (effects, values);
279298
280299 GLfloat value = 0 .0f ;
281300 glF.glGetUniformfv (program.programId (), program.uniformLocation (uniformName), &value);
282301 ASSERT_EQ (std::round (value * 1000 .0f ) / 1000 .0f , 0 .415f );
302+ ASSERT_EQ (values.at (effect), value);
283303
284304 // Below the minimum
285305 effects[effect] = -20.8 ;
286306 program.bind ();
287307 manager.setUniforms (&program, 0 , effects);
308+ manager.getUniformValuesForEffects (effects, values);
288309
289310 value = 0 .0f ;
290311 glF.glGetUniformfv (program.programId (), program.uniformLocation (uniformName), &value);
291312 ASSERT_EQ (value, 1 .0f );
313+ ASSERT_EQ (values.at (effect), value);
292314
293315 // Above the maximum
294316 effects[effect] = 248.2 ;
295317 program.bind ();
296318 manager.setUniforms (&program, 0 , effects);
319+ manager.getUniformValuesForEffects (effects, values);
297320
298321 value = 0 .0f ;
299322 glF.glGetUniformfv (program.programId (), program.uniformLocation (uniformName), &value);
300323 ASSERT_EQ (value, 0 .0f );
324+ ASSERT_EQ (values.at (effect), value);
301325
302326 program.release ();
303327}
0 commit comments