[Cogl] [PATCH 1/2] Don't #ifdef the call to glDiscardFramebuffer
Robert Bragg
robert at sixbynine.org
Tue Feb 12 17:45:49 PST 2013
This looks good to land to me:
Reviewed-by: Robert Bragg <robert at linux.intel.com>
thanks,
- Robert
On Mon, Feb 11, 2013 at 5:36 PM, Neil Roberts <neil at linux.intel.com> wrote:
> When Cogl is compiled with support for both the GL and GLES drivers it
> only includes the GL header and not the GLES header. That means in
> that case it would not compile in the code for the
> GL_EXT_discard_framebuffer extension even though it could be used on
> the GLES driver. This patch makes it use the standard names for the
> GL_COLOR, GL_STENCIL etc names instead of the _EXT suffixed names and
> manually defines them if we are using the GLES headers. That way the
> discard code can be used unconditionally.
> ---
> cogl/driver/gl/cogl-framebuffer-gl.c | 19 ++++++++++++++-----
> 1 file changed, 14 insertions(+), 5 deletions(-)
>
> diff --git a/cogl/driver/gl/cogl-framebuffer-gl.c b/cogl/driver/gl/cogl-framebuffer-gl.c
> index d8a015d..abd3b4a 100644
> --- a/cogl/driver/gl/cogl-framebuffer-gl.c
> +++ b/cogl/driver/gl/cogl-framebuffer-gl.c
> @@ -98,6 +98,17 @@
> #define GL_PACK_INVERT_MESA 0x8758
> #endif
>
> +#ifndef GL_COLOR
> +#define GL_COLOR 0x1800
> +#endif
> +#ifndef GL_DEPTH
> +#define GL_DEPTH 0x1801
> +#endif
> +#ifndef GL_STENCIL
> +#define GL_STENCIL 0x1802
> +#endif
> +
> +
> static void
> _cogl_framebuffer_gl_flush_viewport_state (CoglFramebuffer *framebuffer)
> {
> @@ -996,7 +1007,6 @@ void
> _cogl_framebuffer_gl_discard_buffers (CoglFramebuffer *framebuffer,
> unsigned long buffers)
> {
> -#ifdef GL_EXT_discard_framebuffer
> CoglContext *ctx = framebuffer->context;
>
> if (ctx->glDiscardFramebuffer)
> @@ -1007,11 +1017,11 @@ _cogl_framebuffer_gl_discard_buffers (CoglFramebuffer *framebuffer,
> if (framebuffer->type == COGL_FRAMEBUFFER_TYPE_ONSCREEN)
> {
> if (buffers & COGL_BUFFER_BIT_COLOR)
> - attachments[i++] = GL_COLOR_EXT;
> + attachments[i++] = GL_COLOR;
> if (buffers & COGL_BUFFER_BIT_DEPTH)
> - attachments[i++] = GL_DEPTH_EXT;
> + attachments[i++] = GL_DEPTH;
> if (buffers & COGL_BUFFER_BIT_STENCIL)
> - attachments[i++] = GL_STENCIL_EXT;
> + attachments[i++] = GL_STENCIL;
> }
> else
> {
> @@ -1025,7 +1035,6 @@ _cogl_framebuffer_gl_discard_buffers (CoglFramebuffer *framebuffer,
>
> GE (ctx, glDiscardFramebuffer (GL_FRAMEBUFFER, i, attachments));
> }
> -#endif /* GL_EXT_discard_framebuffer */
> }
>
> void
> --
> 1.7.11.3.g3c3efa5
>
> _______________________________________________
> Cogl mailing list
> Cogl at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/cogl
More information about the Cogl
mailing list