mesa: move freeing of software renderbuffers into swrast

(cherry picked from commit f6a3979a04)
This commit is contained in:
Brian Paul 2012-01-16 12:15:40 -07:00 committed by Ian Romanick
parent 8e5e735424
commit f29212ecba
2 changed files with 16 additions and 6 deletions

View file

@ -55,8 +55,6 @@ _mesa_init_renderbuffer(struct gl_renderbuffer *rb, GLuint name)
rb->InternalFormat = GL_RGBA;
rb->Format = MESA_FORMAT_NONE;
rb->Data = NULL;
/* Point back to ourself so that we don't have to check for Wrapped==NULL
* all over the drivers.
*/
@ -86,10 +84,7 @@ _mesa_new_renderbuffer(struct gl_context *ctx, GLuint name)
void
_mesa_delete_renderbuffer(struct gl_renderbuffer *rb)
{
if (rb->Data) {
free(rb->Data);
}
free(rb);
/* no-op */
}

View file

@ -156,6 +156,20 @@ soft_renderbuffer_storage(struct gl_context *ctx, struct gl_renderbuffer *rb,
}
/**
* Called via gl_renderbuffer::Delete()
*/
static void
soft_renderbuffer_delete(struct gl_renderbuffer *rb)
{
if (rb->Data) {
free(rb->Data);
rb->Data = NULL;
}
free(rb);
}
void
_swrast_map_soft_renderbuffer(struct gl_context *ctx,
struct gl_renderbuffer *rb,
@ -198,6 +212,7 @@ _swrast_new_soft_renderbuffer(struct gl_context *ctx, GLuint name)
struct gl_renderbuffer *rb = _mesa_new_renderbuffer(ctx, name);
if (rb) {
rb->AllocStorage = soft_renderbuffer_storage;
rb->Delete = soft_renderbuffer_delete;
}
return rb;
}