added _mesa_free_framebuffer_data()

This commit is contained in:
Brian Paul
2001-04-27 21:17:20 +00:00
parent 4dbd625eaf
commit 75978bd85e
2 changed files with 47 additions and 24 deletions

View File

@@ -1,4 +1,4 @@
/* $Id: context.c,v 1.133 2001/04/25 18:21:05 brianp Exp $ */ /* $Id: context.c,v 1.134 2001/04/27 21:17:20 brianp Exp $ */
/* /*
* Mesa 3-D graphics library * Mesa 3-D graphics library
@@ -361,7 +361,7 @@ _mesa_initialize_framebuffer( GLframebuffer *buffer,
assert(visual->alphaBits > 0); assert(visual->alphaBits > 0);
} }
buffer->Visual = *visual; /* XXX copy instead? */ buffer->Visual = *visual;
buffer->UseSoftwareDepthBuffer = softwareDepth; buffer->UseSoftwareDepthBuffer = softwareDepth;
buffer->UseSoftwareStencilBuffer = softwareStencil; buffer->UseSoftwareStencilBuffer = softwareStencil;
buffer->UseSoftwareAccumBuffer = softwareAccum; buffer->UseSoftwareAccumBuffer = softwareAccum;
@@ -376,32 +376,52 @@ void
_mesa_destroy_framebuffer( GLframebuffer *buffer ) _mesa_destroy_framebuffer( GLframebuffer *buffer )
{ {
if (buffer) { if (buffer) {
if (buffer->DepthBuffer) { _mesa_free_framebuffer_data(buffer);
FREE( buffer->DepthBuffer );
}
if (buffer->Accum) {
FREE( buffer->Accum );
}
if (buffer->Stencil) {
FREE( buffer->Stencil );
}
if (buffer->FrontLeftAlpha) {
FREE( buffer->FrontLeftAlpha );
}
if (buffer->BackLeftAlpha) {
FREE( buffer->BackLeftAlpha );
}
if (buffer->FrontRightAlpha) {
FREE( buffer->FrontRightAlpha );
}
if (buffer->BackRightAlpha) {
FREE( buffer->BackRightAlpha );
}
FREE(buffer); FREE(buffer);
} }
} }
/*
* Free the data hanging off of <buffer>, but not <buffer> itself.
*/
void
_mesa_free_framebuffer_data( GLframebuffer *buffer )
{
if (!buffer)
return;
if (buffer->DepthBuffer) {
FREE( buffer->DepthBuffer );
buffer->DepthBuffer = NULL;
}
if (buffer->Accum) {
FREE( buffer->Accum );
buffer->Accum = NULL;
}
if (buffer->Stencil) {
FREE( buffer->Stencil );
buffer->Stencil = NULL;
}
if (buffer->FrontLeftAlpha) {
FREE( buffer->FrontLeftAlpha );
buffer->FrontLeftAlpha = NULL;
}
if (buffer->BackLeftAlpha) {
FREE( buffer->BackLeftAlpha );
buffer->BackLeftAlpha = NULL;
}
if (buffer->FrontRightAlpha) {
FREE( buffer->FrontRightAlpha );
buffer->FrontRightAlpha = NULL;
}
if (buffer->BackRightAlpha) {
FREE( buffer->BackRightAlpha );
buffer->BackRightAlpha = NULL;
}
}
/**********************************************************************/ /**********************************************************************/
/***** Context allocation, initialization, destroying *****/ /***** Context allocation, initialization, destroying *****/

View File

@@ -1,4 +1,4 @@
/* $Id: context.h,v 1.25 2001/03/12 00:48:37 gareth Exp $ */ /* $Id: context.h,v 1.26 2001/04/27 21:17:20 brianp Exp $ */
/* /*
* Mesa 3-D graphics library * Mesa 3-D graphics library
@@ -117,6 +117,9 @@ _mesa_initialize_framebuffer( GLframebuffer *fb,
GLboolean softwareAccum, GLboolean softwareAccum,
GLboolean softwareAlpha ); GLboolean softwareAlpha );
extern void
_mesa_free_framebuffer_data( GLframebuffer *buffer );
extern void extern void
_mesa_destroy_framebuffer( GLframebuffer *buffer ); _mesa_destroy_framebuffer( GLframebuffer *buffer );