summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2011-10-04 18:26:39 -0600
committerBrian Paul <[email protected]>2011-10-05 21:06:48 -0600
commitaff65241c8bf6206c6dfcbe774b87991f965d46f (patch)
treee9d643bc265b90bff3964161b0f568f5dcd4a5ac
parent85f5aa156562168d2ecea140b4e087655b11d271 (diff)
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.
-rw-r--r--src/mesa/state_tracker/st_cb_texture.c26
-rw-r--r--src/mesa/state_tracker/st_texture.h7
2 files changed, 19 insertions, 14 deletions
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;