st/mesa: completely stop using gl_texture_image::Data
authorBrian Paul <brianp@vmware.com>
Wed, 5 Oct 2011 00:26:39 +0000 (18:26 -0600)
committerBrian Paul <brianp@vmware.com>
Thu, 6 Oct 2011 03:06:48 +0000 (21:06 -0600)
Instead, use the new st_texture_image::TexData field to hold texture
images that don't fit the parent object's mipmap buffer.

src/mesa/state_tracker/st_cb_texture.c
src/mesa/state_tracker/st_texture.h

index ce10350119ba39dad3bf6018e1912f34d1d582f0..de3b972cfd4c18a556487ac7ee42e08bbc5c64b2 100644 (file)
@@ -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);
index dd3bc73100db4055f09248a87f11a38c7b7c1616..3d2a6369cfb720269059ae15bc16bc5ffbfbd883 100644 (file)
@@ -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;