summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2010-07-02 18:18:15 -0600
committerBrian Paul <brianp@vmware.com>2010-07-02 18:22:53 -0600
commit91c37599f621a0ec498c0f0add14f16470ca852b (patch)
treeaeb8f3a964668503f9960becc5158a2bfc204f1f
parent7cc58c1992ca7f8af13801ea430452e590755e32 (diff)
osmesa: remove old renderbuffer before adding new
Fixes fd.o bug 10966 when OSMesaMakeCurrent() was called twice. NOTE: This is a candidate for the 7.8 branch.
-rw-r--r--src/mesa/drivers/osmesa/osmesa.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/mesa/drivers/osmesa/osmesa.c b/src/mesa/drivers/osmesa/osmesa.c
index ead40503977..93d0e8568a1 100644
--- a/src/mesa/drivers/osmesa/osmesa.c
+++ b/src/mesa/drivers/osmesa/osmesa.c
@@ -1325,12 +1325,13 @@ OSMesaMakeCurrent( OSMesaContext osmesa, void *buffer, GLenum type,
* doesn't match what Mesa was compiled for (CHAN_BITS) the
* _mesa_add_renderbuffer() function will create a "wrapper" renderbuffer
* that converts rendering from CHAN_BITS to the user-requested channel
* size.
*/
osmesa->rb = new_osmesa_renderbuffer(&osmesa->mesa, osmesa->format, type);
+ _mesa_remove_renderbuffer(osmesa->gl_buffer, BUFFER_FRONT_LEFT);
_mesa_add_renderbuffer(osmesa->gl_buffer, BUFFER_FRONT_LEFT, osmesa->rb);
assert(osmesa->rb->RefCount == 2);
/* Set renderbuffer fields. Set width/height = 0 to force
* osmesa_renderbuffer_storage() being called by _mesa_resize_framebuffer()
*/