mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 09:28:07 +02:00
Added _mesa_finish_render_texture() function and reference counting for
the renderbuffer which wraps textures.
This commit is contained in:
parent
315396ac6c
commit
fe37adfde3
3 changed files with 17 additions and 0 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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__);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue