Added _mesa_finish_render_texture() function and reference counting for

the renderbuffer which wraps textures.
This commit is contained in:
Brian Paul 2006-03-21 00:47:40 +00:00
parent 315396ac6c
commit fe37adfde3
3 changed files with 17 additions and 0 deletions

View file

@ -207,6 +207,7 @@ _mesa_init_driver_functions(struct dd_function_table *driver)
driver->NewFramebuffer = _mesa_new_framebuffer;
driver->NewRenderbuffer = _mesa_new_soft_renderbuffer;
driver->RenderbufferTexture = _mesa_renderbuffer_texture;
driver->FinishRenderTexture = _mesa_finish_render_texture;
driver->FramebufferRenderbuffer = _mesa_framebuffer_renderbuffer;
#endif

View file

@ -195,6 +195,7 @@ wrap_texture(GLcontext *ctx, struct gl_renderbuffer_attachment *att)
trb->Base.DepthBits = trb->TexImage->TexFormat->DepthBits;
att->Renderbuffer = &(trb->Base);
trb->Base.RefCount++;
}
@ -241,3 +242,14 @@ _mesa_renderbuffer_texture(GLcontext *ctx,
}
void
_mesa_finish_render_texture(GLcontext *ctx,
struct gl_renderbuffer_attachment *att)
{
if (att->Renderbuffer) {
att->Renderbuffer->RefCount--;
}
if (att->Renderbuffer->RefCount <= 0) {
_mesa_debug(ctx, "%s refcount == 0!\n", __FUNCTION__);
}
}

View file

@ -7,5 +7,9 @@ _mesa_renderbuffer_texture(GLcontext *ctx,
struct gl_framebuffer *fb,
struct gl_renderbuffer_attachment *att);
extern void
_mesa_finish_render_texture(GLcontext *ctx,
struct gl_renderbuffer_attachment *att);
#endif /* TEXRENDER_H */