swrast: add Alloc/FreeTextureImageBuffer() driver functions

Not called yet.  These will replace the core Mesa functions for allocating
and freeing malloc'd texture memory.
This commit is contained in:
Brian Paul
2011-09-17 14:50:48 -06:00
parent d1da1c0ca8
commit efc93219a9
2 changed files with 48 additions and 0 deletions
+38
View File
@@ -58,6 +58,44 @@ _swrast_delete_texture_image(struct gl_context *ctx,
}
/**
* Called via ctx->Driver.AllocTextureImageBuffer()
*/
GLboolean
_swrast_alloc_texture_image_buffer(struct gl_context *ctx,
struct gl_texture_image *texImage,
gl_format format, GLsizei width,
GLsizei height, GLsizei depth)
{
GLuint bytes = _mesa_format_image_size(format, width, height, depth);
/* This _should_ be true (revisit if these ever fail) */
assert(texImage->Width == width);
assert(texImage->Height == height);
assert(texImage->Depth == depth);
assert(!texImage->Data);
texImage->Data = _mesa_align_malloc(bytes, 512);
return texImage->Data != NULL;
}
/**
* Called via ctx->Driver.FreeTextureImageBuffer()
*/
void
_swrast_free_texture_image_buffer(struct gl_context *ctx,
struct gl_texture_image *texImage)
{
if (texImage->Data && !texImage->IsClientData) {
_mesa_align_free(texImage->Data);
}
texImage->Data = NULL;
}
/**
* Error checking for debugging only.
*/
+10
View File
@@ -189,6 +189,16 @@ extern void
_swrast_delete_texture_image(struct gl_context *ctx,
struct gl_texture_image *texImage);
extern GLboolean
_swrast_alloc_texture_image_buffer(struct gl_context *ctx,
struct gl_texture_image *texImage,
gl_format format, GLsizei width,
GLsizei height, GLsizei depth);
extern void
_swrast_free_texture_image_buffer(struct gl_context *ctx,
struct gl_texture_image *texImage);
extern void
_swrast_map_teximage(struct gl_context *ctx,
struct gl_texture_image *texImage,