diff --git a/src/bitmap.cpp b/src/bitmap.cpp index fb2e000..7b65033 100644 --- a/src/bitmap.cpp +++ b/src/bitmap.cpp @@ -63,7 +63,7 @@ struct BitmapPrivate void bindFBO() { - FBO::bind(tex.fbo); + FBO::bind(tex.fbo, FBO::Draw); } void pushSetViewport() const @@ -418,7 +418,7 @@ void Bitmap::hueChange(int hue) shader.setHueAdjust(hueAdj); shader.setInputTexture(p->tex.tex); - FBO::bind(newTex.fbo); + FBO::bind(newTex.fbo, FBO::Draw); TEX::bindMatrix(width(), height()); p->pushSetViewport(); diff --git a/src/gl-util.h b/src/gl-util.h index 33d16f2..ffa214d 100644 --- a/src/gl-util.h +++ b/src/gl-util.h @@ -159,8 +159,7 @@ namespace FBO enum Mode { Draw = 0, - Read = 1, - Default = 2 + Read = 1 }; inline ID gen() @@ -176,19 +175,18 @@ namespace FBO glDeleteFramebuffersEXT(1, &id.gl); } - inline void bind(ID id, Mode mode = Default) + inline void bind(ID id, Mode mode) { static const GLenum modes[] = { GL_DRAW_FRAMEBUFFER_EXT, - GL_READ_FRAMEBUFFER_EXT, - GL_FRAMEBUFFER_EXT + GL_READ_FRAMEBUFFER_EXT }; glBindFramebufferEXT(modes[mode], id.gl); } - inline void unbind(Mode mode = Default) + inline void unbind(Mode mode) { bind(ID(0), mode); } @@ -348,7 +346,7 @@ struct TEXFBO static inline void linkFBO(TEXFBO &obj) { - FBO::bind(obj.fbo); + FBO::bind(obj.fbo, FBO::Draw); FBO::setTarget(obj.tex); } @@ -387,7 +385,7 @@ struct RBOFBO static inline void linkFBO(RBOFBO &obj) { - FBO::bind(obj.fbo); + FBO::bind(obj.fbo, FBO::Draw); FBO::setTarget(obj.rbo); } diff --git a/src/graphics.cpp b/src/graphics.cpp index aa6dfea..9ae825c 100644 --- a/src/graphics.cpp +++ b/src/graphics.cpp @@ -722,7 +722,7 @@ void Graphics::transition(int duration, /* Draw the composed frame to a buffer first * (we need this because we're skipping PingPong) */ - FBO::bind(p->transBuffer.fbo); + FBO::bind(p->transBuffer.fbo, FBO::Draw); glClear(GL_COLOR_BUFFER_BIT); p->screenQuad.draw(); diff --git a/src/tilemap.cpp b/src/tilemap.cpp index 4f2c377..216a70c 100644 --- a/src/tilemap.cpp +++ b/src/tilemap.cpp @@ -478,7 +478,7 @@ struct TilemapPrivate QVector &animatedATs = atlas.animatedATs; /* Clear atlas */ - FBO::bind(atlas.gl.fbo); + FBO::bind(atlas.gl.fbo, FBO::Draw); glState.clearColor.pushSet(Vec4()); glState.scissorTest.pushSet(false); diff --git a/src/window.cpp b/src/window.cpp index 0721101..80ec88e 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -418,7 +418,7 @@ struct WindowPrivate TEX::allocEmpty(baseTex.width, baseTex.height); TEX::unbind(); - FBO::bind(baseTex.fbo); + FBO::bind(baseTex.fbo, FBO::Draw); glState.pushSetViewport(baseTex.width, baseTex.height); glState.clearColor.pushSet(Vec4());