summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/fbobject.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/main/fbobject.c')
-rw-r--r--src/mesa/main/fbobject.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
index 9bf43416a65..6d8d1876d6e 100644
--- a/src/mesa/main/fbobject.c
+++ b/src/mesa/main/fbobject.c
@@ -1288,26 +1288,28 @@ _mesa_BindFramebufferEXT(GLenum target, GLuint framebuffer)
}
else {
FLUSH_VERTICES(ctx, _NEW_BUFFERS);
+
_mesa_reference_framebuffer(&ctx->ReadBuffer, newReadFb);
}
}
if (bindDrawBuf) {
- if (oldDrawFb->Name != 0) {
- check_end_texture_render(ctx, ctx->DrawBuffer);
- }
-
if (oldDrawFb == newDrawFb) {
bindDrawBuf = GL_FALSE; /* no change */
}
else {
FLUSH_VERTICES(ctx, _NEW_BUFFERS);
- _mesa_reference_framebuffer(&ctx->DrawBuffer, newDrawFb);
- }
- if (newDrawFb->Name != 0) {
- /* check if newly bound framebuffer has any texture attachments */
- check_begin_texture_render(ctx, newDrawFb);
+ if (oldDrawFb->Name != 0) {
+ check_end_texture_render(ctx, oldDrawFb);
+ }
+
+ if (newDrawFb->Name != 0) {
+ /* check if newly bound framebuffer has any texture attachments */
+ check_begin_texture_render(ctx, newDrawFb);
+ }
+
+ _mesa_reference_framebuffer(&ctx->DrawBuffer, newDrawFb);
}
}