[Mesa-dev] [PATCH 2/2] mesa: compute row stride outside of loop and fix MSVC compilation error

Brian Paul brianp at vmware.com
Thu Jan 8 13:10:47 PST 2015


Can't do void pointer arithmetic with MSVC.
---
 src/mesa/main/teximage.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
index e41ce32..b3c668f 100644
--- a/src/mesa/main/teximage.c
+++ b/src/mesa/main/teximage.c
@@ -3543,6 +3543,7 @@ texturesubimage(struct gl_context *ctx, GLuint dims,
 
    /* Must handle special case GL_TEXTURE_CUBE_MAP. */
    if (texObj->Target == GL_TEXTURE_CUBE_MAP) {
+      GLint rowStride;
 
       /* Error checking */
       if (texObj->NumLayers < 6) {
@@ -3594,6 +3595,8 @@ texturesubimage(struct gl_context *ctx, GLuint dims,
          return;
       }
 
+      rowStride = _mesa_image_image_stride(&ctx->Unpack, width, height,
+                                           format, type);
       /* Copy in each face. */
       for (i = 0; i < 6; ++i) {
          texImage = texObj->Image[i][level];
@@ -3601,8 +3604,7 @@ texturesubimage(struct gl_context *ctx, GLuint dims,
                                  level, xoffset, yoffset, zoffset,
                                  width, height, 1, format,
                                  type, pixels, true);
-         pixels += _mesa_image_image_stride(&ctx->Unpack, width, height,
-                                            format, type);
+         pixels = (GLubyte *) pixels + rowStride;
       }
    }
    else {
-- 
1.9.1



More information about the mesa-dev mailing list