framebuffer: Only remember offscreen allocate flags when !COGL_OFFSCREEN_DISABLE_DEPTH_AND_STENCIL

Otherwise, if a texture is created before all the other FBOs, a new
atlas will be created, with a FBO with COGL_OFFSCREEN_DISABLE_DEPTH_AND_STENCIL
causing last_offscreen_allocate_flags to be 0.

Reviewed-by: Neil Roberts <neil@linux.intel.com>

(cherry picked from commit 7d2156785da8196e129eb393efb0d09093c4783e)
This commit is contained in:
Tomeu Vizoso 2012-06-26 17:19:14 +02:00 committed by Robert Bragg
parent 1686e754a7
commit 053845f796

View File

@ -1133,10 +1133,13 @@ _cogl_offscreen_allocate (CoglOffscreen *offscreen,
{
fb->samples_per_pixel = gl_framebuffer->samples_per_pixel;
/* Record that the last set of flags succeeded so that we can
try that set first next time */
ctx->last_offscreen_allocate_flags = flags;
ctx->have_last_offscreen_allocate_flags = TRUE;
if (!offscreen->create_flags & COGL_OFFSCREEN_DISABLE_DEPTH_AND_STENCIL)
{
/* Record that the last set of flags succeeded so that we can
try that set first next time */
ctx->last_offscreen_allocate_flags = flags;
ctx->have_last_offscreen_allocate_flags = TRUE;
}
/* Save the flags we managed so successfully allocate the
* renderbuffers with in case we need to make renderbuffers for a