Browse Source

glDrawBuffer() is not available in ES3.

Using glDrawBuffers() also in this case.
pull/278/head
Vladimír Vondruš 13 years ago
parent
commit
cb06737640
  1. 4
      src/AbstractFramebuffer.cpp
  2. 3
      src/DefaultFramebuffer.h
  3. 3
      src/Framebuffer.h

4
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<void>(buffer);
#endif
}

3
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.
*/

3
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) {

Loading…
Cancel
Save