From dccd9c4f4d3eb4fd31002eb13e32ea78a5d0905c Mon Sep 17 00:00:00 2001 From: Brian Date: Mon, 2 Apr 2007 09:56:28 -0600 Subject: use _mesa_reference_renderbuffer() in a few more places --- src/mesa/main/fbobject.c | 14 ++------------ src/mesa/main/texrender.c | 2 +- 2 files changed, 3 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c index fefa14e503..58bcc24b32 100644 --- a/src/mesa/main/fbobject.c +++ b/src/mesa/main/fbobject.c @@ -165,11 +165,7 @@ _mesa_remove_attachment(GLcontext *ctx, struct gl_renderbuffer_attachment *att) if (att->Type == GL_TEXTURE || att->Type == GL_RENDERBUFFER_EXT) { ASSERT(att->Renderbuffer); ASSERT(!att->Texture); - att->Renderbuffer->RefCount--; - if (att->Renderbuffer->RefCount == 0) { - att->Renderbuffer->Delete(att->Renderbuffer); - } - att->Renderbuffer = NULL; + _mesa_reference_renderbuffer(&att->Renderbuffer, NULL); } att->Type = GL_NONE; att->Complete = GL_TRUE; @@ -228,10 +224,9 @@ _mesa_set_renderbuffer_attachment(GLcontext *ctx, /* XXX check if re-doing same attachment, exit early */ _mesa_remove_attachment(ctx, att); att->Type = GL_RENDERBUFFER_EXT; - att->Renderbuffer = rb; att->Texture = NULL; /* just to be safe */ att->Complete = GL_FALSE; - rb->RefCount++; + _mesa_reference_renderbuffer(&att->Renderbuffer, rb); } @@ -246,12 +241,9 @@ _mesa_framebuffer_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, struct gl_renderbuffer_attachment *att; _glthread_LOCK_MUTEX(fb->Mutex); - if (rb) - _glthread_LOCK_MUTEX(rb->Mutex); att = _mesa_get_attachment(ctx, fb, attachment); ASSERT(att); - if (rb) { _mesa_set_renderbuffer_attachment(ctx, att, rb); } @@ -259,8 +251,6 @@ _mesa_framebuffer_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, _mesa_remove_attachment(ctx, att); } - if (rb) - _glthread_UNLOCK_MUTEX(rb->Mutex); _glthread_UNLOCK_MUTEX(fb->Mutex); } diff --git a/src/mesa/main/texrender.c b/src/mesa/main/texrender.c index 32e7b575f0..f738584512 100644 --- a/src/mesa/main/texrender.c +++ b/src/mesa/main/texrender.c @@ -325,7 +325,7 @@ wrap_texture(GLcontext *ctx, struct gl_renderbuffer_attachment *att) trb->Base.PutMonoValues = texture_put_mono_values; /* update attachment point */ - att->Renderbuffer = &(trb->Base); + _mesa_reference_renderbuffer(&att->Renderbuffer, &(trb->Base)); } -- cgit v1.2.3