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>
This commit is contained in:
parent
68ed4c9c89
commit
4b69c1a92d
|
@ -3495,20 +3495,22 @@ 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);
|
||||
|
||||
_mesa_dirty_texobj(ctx, texObj, GL_TRUE);
|
||||
|
|
Loading…
Reference in New Issue