From beebbc762cc53021f6cbbd4f3ad1ec0b9914c03f Mon Sep 17 00:00:00 2001 From: Sam Spilsbury Date: Sun, 7 Feb 2016 03:31:46 +0000 Subject: [PATCH] AbstractFramebuffer: Use correct target for GLES OpenGL ES without GL_APPLE_framebuffer_multisample doesn't support multiple draw or read bindings, so we need to use GL_FRAMEBUFFER for that. It seems as though the Magnum convention is to use use FramebufferTarget::Draw for read-draw bindings, so Read and Draw have been aliased to GL_FRAMEBUFFER in this case. --- src/Magnum/AbstractFramebuffer.cpp | 10 +++++----- src/Magnum/AbstractFramebuffer.h | 12 ++++++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Magnum/AbstractFramebuffer.cpp b/src/Magnum/AbstractFramebuffer.cpp index c6e887f5c..ac8f7a25c 100644 --- a/src/Magnum/AbstractFramebuffer.cpp +++ b/src/Magnum/AbstractFramebuffer.cpp @@ -122,7 +122,7 @@ void AbstractFramebuffer::bindImplementationSingle(FramebufferTarget) { /* Binding the framebuffer finally creates it */ _flags |= ObjectFlag::Created; - glBindFramebuffer(GL_FRAMEBUFFER, _id); + glBindFramebuffer(GLenum(FramebufferTarget::Draw), _id); } #endif @@ -164,10 +164,10 @@ FramebufferTarget AbstractFramebuffer::bindImplementationSingle() { /* Binding the framebuffer finally creates it */ _flags |= ObjectFlag::Created; - glBindFramebuffer(GL_FRAMEBUFFER, _id); + glBindFramebuffer(GLenum(FramebufferTarget::Draw), _id); } - return FramebufferTarget{}; + return FramebufferTarget::Draw; } #endif @@ -367,8 +367,8 @@ GLenum AbstractFramebuffer::checkStatusImplementationDefault(const FramebufferTa #ifdef MAGNUM_TARGET_GLES2 GLenum AbstractFramebuffer::checkStatusImplementationSingle(FramebufferTarget) { - bindInternal(FramebufferTarget{}); - return glCheckFramebufferStatus(GL_FRAMEBUFFER); + bindInternal(FramebufferTarget::Draw); + return glCheckFramebufferStatus(GLenum(FramebufferTarget::Draw)); } #endif diff --git a/src/Magnum/AbstractFramebuffer.h b/src/Magnum/AbstractFramebuffer.h index d8c9a61fc..4a832f703 100644 --- a/src/Magnum/AbstractFramebuffer.h +++ b/src/Magnum/AbstractFramebuffer.h @@ -117,19 +117,19 @@ enum class FramebufferTarget: GLenum { /** Frambebuffer reading target */ #ifndef MAGNUM_TARGET_GLES2 Read = GL_READ_FRAMEBUFFER, - #elif !defined(MAGNUM_TARGET_WEBGL) + #elif defined(CORRADE_TARGET_APPLE) Read = GL_READ_FRAMEBUFFER_APPLE, #else - Read, + Read = GL_FRAMEBUFFER, #endif /** Framebuffer drawing target */ #ifndef MAGNUM_TARGET_GLES2 Draw = GL_DRAW_FRAMEBUFFER, - #elif !defined(MAGNUM_TARGET_WEBGL) + #elif defined(CORRADE_TARGET_APPLE) Draw = GL_DRAW_FRAMEBUFFER_APPLE, #else - Draw, + Draw = GL_FRAMEBUFFER, #endif #ifdef MAGNUM_BUILD_DEPRECATED @@ -140,10 +140,10 @@ enum class FramebufferTarget: GLenum { ReadDraw CORRADE_DEPRECATED_ENUM("use FramebufferTarget::Draw instead") = #ifndef MAGNUM_TARGET_GLES2 GL_DRAW_FRAMEBUFFER - #elif !defined(MAGNUM_TARGET_WEBGL) + #elif defined(MAGNUM_TARGET_APPLE) GL_DRAW_FRAMEBUFFER_APPLE #else - 1 + GL_FRAMEBUFFER #endif #endif };