diff options
author | marha <marha@users.sourceforge.net> | 2011-09-19 13:39:03 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2011-09-19 13:39:03 +0200 |
commit | 1678a69116d1c6ce900fe15f7813613bb28416dd (patch) | |
tree | 9589536f6b4bd60b34f90cf5ed20240d40bbb38c /mesalib/src/mesa/swrast/s_texture.c | |
parent | 9d911bc1246139019e555f443e934677a067bc0a (diff) | |
parent | b2c925e360e2c366526de15b44603f855f94139c (diff) | |
download | vcxsrv-1678a69116d1c6ce900fe15f7813613bb28416dd.tar.gz vcxsrv-1678a69116d1c6ce900fe15f7813613bb28416dd.tar.bz2 vcxsrv-1678a69116d1c6ce900fe15f7813613bb28416dd.zip |
Merge remote-tracking branch 'origin/released'
Conflicts:
libfontenc/src/fontenc.c
Diffstat (limited to 'mesalib/src/mesa/swrast/s_texture.c')
-rw-r--r-- | mesalib/src/mesa/swrast/s_texture.c | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/mesalib/src/mesa/swrast/s_texture.c b/mesalib/src/mesa/swrast/s_texture.c index 6cc72c582..7e3fc2806 100644 --- a/mesalib/src/mesa/swrast/s_texture.c +++ b/mesalib/src/mesa/swrast/s_texture.c @@ -28,9 +28,74 @@ #include "main/context.h" #include "main/fbobject.h" +#include "main/teximage.h" #include "swrast/swrast.h" #include "swrast/s_context.h" + +/** + * Allocate a new swrast_texture_image (a subclass of gl_texture_image). + * Called via ctx->Driver.NewTextureImage(). + */ +struct gl_texture_image * +_swrast_new_texture_image( struct gl_context *ctx ) +{ + (void) ctx; + return (struct gl_texture_image *) CALLOC_STRUCT(swrast_texture_image); +} + + +/** + * Free a swrast_texture_image (a subclass of gl_texture_image). + * Called via ctx->Driver.DeleteTextureImage(). + */ +void +_swrast_delete_texture_image(struct gl_context *ctx, + struct gl_texture_image *texImage) +{ + /* Nothing special for the subclass yet */ + _mesa_delete_texture_image(ctx, texImage); +} + + +/** + * 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. */ |