Browse Source

Merge 40c4d9edd4 into 23646e6690

pull/134/merge
Sam Spilsbury 10 years ago
parent
commit
f1850635e8
  1. 22
      src/Magnum/AbstractFramebuffer.cpp
  2. 12
      src/Magnum/AbstractFramebuffer.h

22
src/Magnum/AbstractFramebuffer.cpp

@ -105,9 +105,13 @@ void AbstractFramebuffer::bind() {
} }
void AbstractFramebuffer::bindInternal(FramebufferTarget target) { void AbstractFramebuffer::bindInternal(FramebufferTarget target) {
#if defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL) #if defined(MAGNUM_TARGET_GLES2)
#if !defined(MAGNUM_TARGET_WEBGL)
(this->*Context::current().state().framebuffer->bindImplementation)(target); (this->*Context::current().state().framebuffer->bindImplementation)(target);
#else #else
bindImplementationSingle();
#endif
#else
bindImplementationDefault(target); bindImplementationDefault(target);
#endif #endif
} }
@ -122,7 +126,7 @@ void AbstractFramebuffer::bindImplementationSingle(FramebufferTarget) {
/* Binding the framebuffer finally creates it */ /* Binding the framebuffer finally creates it */
_flags |= ObjectFlag::Created; _flags |= ObjectFlag::Created;
glBindFramebuffer(GL_FRAMEBUFFER, _id); glBindFramebuffer(GLenum(FramebufferTarget::Draw), _id);
} }
#endif #endif
@ -146,9 +150,13 @@ void AbstractFramebuffer::bindImplementationDefault(FramebufferTarget target) {
} }
FramebufferTarget AbstractFramebuffer::bindInternal() { FramebufferTarget AbstractFramebuffer::bindInternal() {
#if defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL) #if defined(MAGNUM_TARGET_GLES2)
#if !defined(MAGNUM_TARGET_WEBGL)
return (this->*Context::current().state().framebuffer->bindInternalImplementation)(); return (this->*Context::current().state().framebuffer->bindInternalImplementation)();
#else #else
return bindImplementationSingle();
#endif
#else
return bindImplementationDefault(); return bindImplementationDefault();
#endif #endif
} }
@ -164,10 +172,10 @@ FramebufferTarget AbstractFramebuffer::bindImplementationSingle() {
/* Binding the framebuffer finally creates it */ /* Binding the framebuffer finally creates it */
_flags |= ObjectFlag::Created; _flags |= ObjectFlag::Created;
glBindFramebuffer(GL_FRAMEBUFFER, _id); glBindFramebuffer(GLenum(FramebufferTarget::Draw), _id);
} }
return FramebufferTarget{}; return FramebufferTarget::Draw;
} }
#endif #endif
@ -367,8 +375,8 @@ GLenum AbstractFramebuffer::checkStatusImplementationDefault(const FramebufferTa
#ifdef MAGNUM_TARGET_GLES2 #ifdef MAGNUM_TARGET_GLES2
GLenum AbstractFramebuffer::checkStatusImplementationSingle(FramebufferTarget) { GLenum AbstractFramebuffer::checkStatusImplementationSingle(FramebufferTarget) {
bindInternal(FramebufferTarget{}); bindInternal(FramebufferTarget::Draw);
return glCheckFramebufferStatus(GL_FRAMEBUFFER); return glCheckFramebufferStatus(GLenum(FramebufferTarget::Draw));
} }
#endif #endif

12
src/Magnum/AbstractFramebuffer.h

@ -117,19 +117,19 @@ enum class FramebufferTarget: GLenum {
/** Frambebuffer reading target */ /** Frambebuffer reading target */
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
Read = GL_READ_FRAMEBUFFER, Read = GL_READ_FRAMEBUFFER,
#elif !defined(MAGNUM_TARGET_WEBGL) #elif defined(CORRADE_TARGET_APPLE)
Read = GL_READ_FRAMEBUFFER_APPLE, Read = GL_READ_FRAMEBUFFER_APPLE,
#else #else
Read, Read = GL_FRAMEBUFFER,
#endif #endif
/** Framebuffer drawing target */ /** Framebuffer drawing target */
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
Draw = GL_DRAW_FRAMEBUFFER, Draw = GL_DRAW_FRAMEBUFFER,
#elif !defined(MAGNUM_TARGET_WEBGL) #elif defined(CORRADE_TARGET_APPLE)
Draw = GL_DRAW_FRAMEBUFFER_APPLE, Draw = GL_DRAW_FRAMEBUFFER_APPLE,
#else #else
Draw, Draw = GL_FRAMEBUFFER,
#endif #endif
#ifdef MAGNUM_BUILD_DEPRECATED #ifdef MAGNUM_BUILD_DEPRECATED
@ -140,10 +140,10 @@ enum class FramebufferTarget: GLenum {
ReadDraw CORRADE_DEPRECATED_ENUM("use FramebufferTarget::Draw instead") = ReadDraw CORRADE_DEPRECATED_ENUM("use FramebufferTarget::Draw instead") =
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
GL_DRAW_FRAMEBUFFER GL_DRAW_FRAMEBUFFER
#elif !defined(MAGNUM_TARGET_WEBGL) #elif defined(MAGNUM_TARGET_APPLE)
GL_DRAW_FRAMEBUFFER_APPLE GL_DRAW_FRAMEBUFFER_APPLE
#else #else
1 GL_FRAMEBUFFER
#endif #endif
#endif #endif
}; };

Loading…
Cancel
Save