From cb067376402f5e53d79311825ef5d134856e92c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Fri, 22 Mar 2013 21:39:00 +0100 Subject: [PATCH] glDrawBuffer() is not available in ES3. Using glDrawBuffers() also in this case. --- src/AbstractFramebuffer.cpp | 4 ++++ src/DefaultFramebuffer.h | 3 ++- src/Framebuffer.h | 3 ++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/AbstractFramebuffer.cpp b/src/AbstractFramebuffer.cpp index ac57b4402..6fd62aab8 100644 --- a/src/AbstractFramebuffer.cpp +++ b/src/AbstractFramebuffer.cpp @@ -219,8 +219,12 @@ void AbstractFramebuffer::drawBufferImplementationDefault(GLenum buffer) { /** @todo Re-enable when extension wrangler is available for ES2 */ #ifndef MAGNUM_TARGET_GLES2 bindInternal(drawTarget); + #ifndef MAGNUM_TARGET_GLES3 glDrawBuffer(buffer); #else + glDrawBuffers(1, &buffer); + #endif + #else static_cast(buffer); #endif } diff --git a/src/DefaultFramebuffer.h b/src/DefaultFramebuffer.h index 3f37969cc..c7ae2effc 100644 --- a/src/DefaultFramebuffer.h +++ b/src/DefaultFramebuffer.h @@ -306,7 +306,8 @@ class MAGNUM_EXPORT DefaultFramebuffer: public AbstractFramebuffer { * framebufferbuffer is not currently bound, it is bound before the * operation. * @see mapForRead(), @fn_gl{BindFramebuffer}, @fn_gl{DrawBuffer} or - * @fn_gl_extension{FramebufferDrawBuffer,EXT,direct_state_access} + * @fn_gl_extension{FramebufferDrawBuffer,EXT,direct_state_access}, + * @fn_gl{DrawBuffers} in OpenGL ES 3.0 * @requires_gles30 Draw attachments for default framebuffer are * available only in OpenGL ES 3.0. */ diff --git a/src/Framebuffer.h b/src/Framebuffer.h index 26a2029ea..096d98752 100644 --- a/src/Framebuffer.h +++ b/src/Framebuffer.h @@ -262,7 +262,8 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer { * framebufferbuffer is not currently bound, it is bound before the * operation. * @see mapForRead(), @fn_gl{BindFramebuffer}, @fn_gl{DrawBuffer} or - * @fn_gl_extension{FramebufferDrawBuffer,EXT,direct_state_access} + * @fn_gl_extension{FramebufferDrawBuffer,EXT,direct_state_access}, + * @fn_gl{DrawBuffers} in OpenGL ES 3.0 * @requires_gles30 %Extension @es_extension2{NV,draw_buffers,GL_NV_draw_buffers} */ inline Framebuffer* mapForDraw(DrawAttachment attachment) {