Clear the color bits of the textures in the color mask test

Uninitialized textures could contain random bits. That makes the test
fail as glColorMask is used to let only one of the RGB pass through.

https://bugzilla.gnome.org/show_bug.cgi?id=660387

Reviewed-by: Neil Roberts <neil@linux.intel.com>
This commit is contained in:
Luca Bruno 2011-09-28 20:48:45 +02:00 committed by Neil Roberts
parent 5aab8a2310
commit e7cdb1b11b

View File

@ -92,11 +92,14 @@ test_cogl_color_mask (TestUtilsGTestFixture *fixture,
{ {
TestUtilsSharedState *shared_state = data; TestUtilsSharedState *shared_state = data;
TestState state; TestState state;
CoglColor bg;
int i; int i;
state.width = cogl_framebuffer_get_width (shared_state->fb); state.width = cogl_framebuffer_get_width (shared_state->fb);
state.height = cogl_framebuffer_get_height (shared_state->fb); state.height = cogl_framebuffer_get_height (shared_state->fb);
cogl_color_init_from_4ub (&bg, 0, 0, 0, 255);
for (i = 0; i < NUM_FBOS; i++) for (i = 0; i < NUM_FBOS; i++)
{ {
state.tex[i] = cogl_texture_new_with_size (128, 128, state.tex[i] = cogl_texture_new_with_size (128, 128,
@ -105,6 +108,12 @@ test_cogl_color_mask (TestUtilsGTestFixture *fixture,
state.fbo[i] = cogl_offscreen_new_to_texture (state.tex[i]); state.fbo[i] = cogl_offscreen_new_to_texture (state.tex[i]);
/* Clear the texture color bits */
cogl_push_framebuffer (state.fbo[i]);
cogl_clear (&bg, COGL_BUFFER_BIT_COLOR);
cogl_pop_framebuffer ();
cogl_framebuffer_set_color_mask (state.fbo[i], cogl_framebuffer_set_color_mask (state.fbo[i],
i == 0 ? COGL_COLOR_MASK_RED : i == 0 ? COGL_COLOR_MASK_RED :
i == 1 ? COGL_COLOR_MASK_GREEN : i == 1 ? COGL_COLOR_MASK_GREEN :