glide: use _mesa_get_texstore_func()
authorBrian Paul <brianp@vmware.com>
Mon, 28 Sep 2009 00:34:12 +0000 (18:34 -0600)
committerBrian Paul <brianp@vmware.com>
Mon, 28 Sep 2009 00:34:12 +0000 (18:34 -0600)
src/mesa/drivers/glide/fxddtex.c

index f3cd9081810e1ae6dda690578412bf863ea6494e..a63301d96414efe0f2240d319f398db82e56f1eb 100644 (file)
@@ -42,6 +42,7 @@
 #include "main/enums.h"
 #include "main/image.h"
 #include "main/teximage.h"
+#include "main/texstore.h"
 #include "main/texformat.h"
 #include "main/texcompress.h"
 #include "main/texobj.h"
@@ -135,15 +136,18 @@ _mesa_halve2x2_teximage2d ( GLcontext *ctx,
    }
 
    if (bpt) {
+      StoreTexImageFunc storeImage =
+         _mesa_get_texstore_func(texImage->TexFormat->MesaFormat);
+
       src = _s;
       dst = _d;
-      texImage->TexFormat->StoreImage(ctx, 2, texImage->_BaseFormat,
-                                      texImage->TexFormat, dstImage,
-                                      0, 0, 0, /* dstX/Y/Zoffset */
-                                      dstWidth * bpt,
-                                      0, /* dstImageStride */
-                                      dstWidth, dstHeight, 1,
-                                      GL_BGRA, CHAN_TYPE, dst, &ctx->DefaultPacking);
+      storeImage(ctx, 2, texImage->_BaseFormat,
+                 texImage->TexFormat, dstImage,
+                 0, 0, 0, /* dstX/Y/Zoffset */
+                 dstWidth * bpt,
+                 0, /* dstImageStride */
+                 dstWidth, dstHeight, 1,
+                 GL_BGRA, CHAN_TYPE, dst, &ctx->DefaultPacking);
       FREE(dst);
       FREE(src);
    }
@@ -1234,18 +1238,21 @@ adjust2DRatio (GLcontext *ctx,
 
    if (!texImage->IsCompressed) {
       GLubyte *destAddr;
+      StoreTexImageFunc storeImage =
+         _mesa_get_texstore_func(texImage->TexFormat->MesaFormat);
+
       tempImage = MALLOC(width * height * texelBytes);
       if (!tempImage) {
          return GL_FALSE;
       }
 
-      texImage->TexFormat->StoreImage(ctx, 2, texImage->_BaseFormat,
-                                      texImage->TexFormat, tempImage,
-                                      0, 0, 0, /* dstX/Y/Zoffset */
-                                      width * texelBytes, /* dstRowStride */
-                                      0, /* dstImageStride */
-                                      width, height, 1,
-                                      format, type, pixels, packing);
+      storeImage(ctx, 2, texImage->_BaseFormat,
+                 texImage->TexFormat, tempImage,
+                 0, 0, 0, /* dstX/Y/Zoffset */
+                 width * texelBytes, /* dstRowStride */
+                 0, /* dstImageStride */
+                 width, height, 1,
+                 format, type, pixels, packing);
 
       /* now rescale */
       /* compute address of dest subimage within the overal tex image */
@@ -1262,6 +1269,9 @@ adjust2DRatio (GLcontext *ctx,
    } else {
       const GLint rawBytes = 4;
       GLvoid *rawImage = MALLOC(width * height * rawBytes);
+      StoreTexImageFunc storeImage =
+         _mesa_get_texstore_func(texImage->TexFormat->MesaFormat);
+
       if (!rawImage) {
          return GL_FALSE;
       }
@@ -1283,13 +1293,13 @@ adjust2DRatio (GLcontext *ctx,
                                width, height, /* src */
                                newWidth, newHeight, /* dst */
                                rawImage /*src*/, tempImage /*dst*/ );
-      texImage->TexFormat->StoreImage(ctx, 2, texImage->_BaseFormat,
-                                      texImage->TexFormat, texImage->Data,
-                                      xoffset * mml->wScale, yoffset * mml->hScale, 0, /* dstX/Y/Zoffset */
-                                      dstRowStride,
-                                      0, /* dstImageStride */
-                                      newWidth, newHeight, 1,
-                                      GL_RGBA, CHAN_TYPE, tempImage, &ctx->DefaultPacking);
+      storeImage(ctx, 2, texImage->_BaseFormat,
+                 texImage->TexFormat, texImage->Data,
+                 xoffset * mml->wScale, yoffset * mml->hScale, 0, /* dstX/Y/Zoffset */
+                 dstRowStride,
+                 0, /* dstImageStride */
+                 newWidth, newHeight, 1,
+                 GL_RGBA, CHAN_TYPE, tempImage, &ctx->DefaultPacking);
       FREE(rawImage);
    }
 
@@ -1430,13 +1440,16 @@ fxDDTexImage2D(GLcontext * ctx, GLenum target, GLint level,
       else {
          /* no rescaling needed */
          /* unpack image, apply transfer ops and store in texImage->Data */
-         texImage->TexFormat->StoreImage(ctx, 2, texImage->_BaseFormat,
-                                         texImage->TexFormat, texImage->Data,
-                                         0, 0, 0, /* dstX/Y/Zoffset */
-                                         dstRowStride,
-                                         0, /* dstImageStride */
-                                         width, height, 1,
-                                         format, type, pixels, packing);
+         StoreTexImageFunc storeImage =
+            _mesa_get_texstore_func(texImage->TexFormat->MesaFormat);
+
+         storeImage(ctx, 2, texImage->_BaseFormat,
+                    texImage->TexFormat, texImage->Data,
+                    0, 0, 0, /* dstX/Y/Zoffset */
+                    dstRowStride,
+                    0, /* dstImageStride */
+                    width, height, 1,
+                    format, type, pixels, packing);
       }
 
       /* GL_SGIS_generate_mipmap */
@@ -1543,13 +1556,16 @@ fxDDTexSubImage2D(GLcontext * ctx, GLenum target, GLint level,
    }
    else {
       /* no rescaling needed */
-      texImage->TexFormat->StoreImage(ctx, 2, texImage->_BaseFormat,
-                                      texImage->TexFormat, (GLubyte *) texImage->Data,
-                                      xoffset, yoffset, 0, /* dstX/Y/Zoffset */
-                                      dstRowStride,
-                                      0, /* dstImageStride */
-                                      width, height, 1,
-                                      format, type, pixels, packing);
+      StoreTexImageFunc storeImage =
+         _mesa_get_texstore_func(texImage->TexFormat->MesaFormat);
+
+      storeImage(ctx, 2, texImage->_BaseFormat,
+                 texImage->TexFormat, (GLubyte *) texImage->Data,
+                 xoffset, yoffset, 0, /* dstX/Y/Zoffset */
+                 dstRowStride,
+                 0, /* dstImageStride */
+                 width, height, 1,
+                 format, type, pixels, packing);
    }
 
    /* GL_SGIS_generate_mipmap */