From: Brian Paul Date: Wed, 5 Oct 2011 00:26:39 +0000 (-0600) Subject: st/mesa: completely stop using gl_texture_image::Data X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=aff65241c8bf6206c6dfcbe774b87991f965d46f;p=mesa.git st/mesa: completely stop using gl_texture_image::Data Instead, use the new st_texture_image::TexData field to hold texture images that don't fit the parent object's mipmap buffer. --- diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c index ce10350119b..de3b972cfd4 100644 --- a/src/mesa/state_tracker/st_cb_texture.c +++ b/src/mesa/state_tracker/st_cb_texture.c @@ -162,9 +162,9 @@ st_FreeTextureImageBuffer(struct gl_context * ctx, struct gl_texture_image *texI pipe_resource_reference(&stImage->pt, NULL); } - if (texImage->Data) { - _mesa_align_free(texImage->Data); - texImage->Data = NULL; + if (stImage->TexData) { + _mesa_align_free(stImage->TexData); + stImage->TexData = NULL; } } @@ -482,7 +482,7 @@ st_AllocTextureImageBuffer(struct gl_context *ctx, assert(width > 0); assert(height > 0); assert(depth > 0); - assert(!texImage->Data); + assert(!stImage->TexData); assert(!stImage->pt); /* xxx this might be wrong */ /* Look if the parent texture object has space for this image */ @@ -651,10 +651,10 @@ st_TexImage(struct gl_context * ctx, */ if (stImage->pt) { pipe_resource_reference(&stImage->pt, NULL); - assert(!texImage->Data); + assert(!stImage->TexData); } - else if (texImage->Data) { - _mesa_align_free(texImage->Data); + else if (stImage->TexData) { + _mesa_align_free(stImage->TexData); } /* @@ -756,8 +756,8 @@ st_TexImage(struct gl_context * ctx, width, height, depth); dstRowStride = _mesa_format_row_stride(texImage->TexFormat, width); - texImage->Data = _mesa_align_malloc(imageSize, 16); - dstMap = texImage->Data; + stImage->TexData = _mesa_align_malloc(imageSize, 16); + dstMap = stImage->TexData; } if (!dstMap) { @@ -1684,19 +1684,19 @@ copy_image_data_to_texture(struct st_context *st, pipe_resource_reference(&stImage->pt, NULL); } - else if (stImage->base.Data) { + else if (stImage->TexData) { st_texture_image_data(st, stObj->pt, stImage->base.Face, dstLevel, - stImage->base.Data, + stImage->TexData, stImage->base.RowStride * util_format_get_blocksize(stObj->pt->format), stImage->base.RowStride * stImage->base.Height * util_format_get_blocksize(stObj->pt->format)); - _mesa_align_free(stImage->base.Data); - stImage->base.Data = NULL; + _mesa_align_free(stImage->TexData); + stImage->TexData = NULL; } pipe_resource_reference(&stImage->pt, stObj->pt); diff --git a/src/mesa/state_tracker/st_texture.h b/src/mesa/state_tracker/st_texture.h index dd3bc73100d..3d2a6369cfb 100644 --- a/src/mesa/state_tracker/st_texture.h +++ b/src/mesa/state_tracker/st_texture.h @@ -45,8 +45,13 @@ struct st_texture_image { struct gl_texture_image base; + /** Used to store texture data that doesn't fit in the patent + * object's mipmap buffer. + */ + GLubyte *TexData; + /* If stImage->pt != NULL, image data is stored here. - * Else if stImage->base.Data != NULL, image is stored there. + * Else if stImage->TexData != NULL, image is stored there. * Else there is no image data. */ struct pipe_resource *pt;