Browse Source

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@vmware.com>
undefined
Marek Olšák 12 years ago
parent
commit
4b69c1a92d
1 changed files with 12 additions and 10 deletions
  1. 12
    10
      src/mesa/main/teximage.c

+ 12
- 10
src/mesa/main/teximage.c View File

@@ -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);


Loading…
Cancel
Save