Mesa (master): mesa: don' t allocate a texture if width or height is 0 in CopyTexImage

Marek Olšák mareko at kemper.freedesktop.org
Mon Mar 11 12:51:47 UTC 2013


Module: Mesa
Branch: master
Commit: 4b69c1a92d4e1a03377a91548e0a99c3cf3dfea1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4b69c1a92d4e1a03377a91548e0a99c3cf3dfea1

Author: Marek Olšák <maraeo at gmail.com>
Date:   Mon Mar  4 13:26:51 2013 +0100

mesa: don't allocate a texture if width or height is 0 in CopyTexImage

NOTE: This is a candidate for the stable branches.

Reviewed-by: Brian Paul <brianp at vmware.com>

---

 src/mesa/main/teximage.c |   22 ++++++++++++----------
 1 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
index 7d996da..4042e79 100644
--- a/src/mesa/main/teximage.c
+++ b/src/mesa/main/teximage.c
@@ -3495,19 +3495,21 @@ copyteximage(struct gl_context *ctx, GLuint dims,
          _mesa_init_teximage_fields(ctx, texImage, width, height, 1,
                                     border, internalFormat, texFormat);
 
-         /* Allocate texture memory (no pixel data yet) */
-         ctx->Driver.AllocTextureImageBuffer(ctx, texImage);
+         if (width && height) {
+            /* Allocate texture memory (no pixel data yet) */
+            ctx->Driver.AllocTextureImageBuffer(ctx, texImage);
 
-         if (_mesa_clip_copytexsubimage(ctx, &dstX, &dstY, &srcX, &srcY,
-                                        &width, &height)) {
-            struct gl_renderbuffer *srcRb =
-               get_copy_tex_image_source(ctx, texImage->TexFormat);
+            if (_mesa_clip_copytexsubimage(ctx, &dstX, &dstY, &srcX, &srcY,
+                                           &width, &height)) {
+               struct gl_renderbuffer *srcRb =
+                  get_copy_tex_image_source(ctx, texImage->TexFormat);
 
-            ctx->Driver.CopyTexSubImage(ctx, dims, texImage, dstX, dstY, dstZ,
-                                        srcRb, srcX, srcY, width, height);
-         }
+               ctx->Driver.CopyTexSubImage(ctx, dims, texImage, dstX, dstY, dstZ,
+                                           srcRb, srcX, srcY, width, height);
+            }
 
-         check_gen_mipmap(ctx, target, texObj, level);
+            check_gen_mipmap(ctx, target, texObj, level);
+         }
 
          _mesa_update_fbo_texture(ctx, texObj, face, level);
 




More information about the mesa-commit mailing list