From df461ac952859a3608b93651fbc4160883b2dd99 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 8 Jan 2015 14:10:12 -0700 Subject: [PATCH] mesa: compute row stride outside of loop and fix MSVC compilation error Can't do void pointer arithmetic with MSVC. Reviewed-by: Jose Fonseca --- 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 e41ce32806a..b3c668f9e54 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 { -- 2.30.2