From 08acd4bd61430beb20a74af23de9f63c8f077467 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 20 Jan 2012 15:03:12 -0800 Subject: [PATCH] mesa: Add support for glGetTexImage on GL_TEXTURE_1D_ARRAY Similarly to how we handle this in texstore, we have to remap height to depth so that we MapTextureImage each image layer individually. Fixes part of Intel oglconform's int-textures advanced.fbo.rtt NOTE: This is a candidate for the 8.0 branch. Reviewed-by: Brian Paul --- src/mesa/main/texgetimage.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/mesa/main/texgetimage.c b/src/mesa/main/texgetimage.c index 91b4892fe25..818deb8e41e 100644 --- a/src/mesa/main/texgetimage.c +++ b/src/mesa/main/texgetimage.c @@ -312,8 +312,8 @@ get_tex_rgba_uncompressed(struct gl_context *ctx, GLuint dimensions, const gl_format texFormat = _mesa_get_srgb_format_linear(texImage->TexFormat); const GLuint width = texImage->Width; - const GLuint height = texImage->Height; - const GLuint depth = texImage->Depth; + GLuint height = texImage->Height; + GLuint depth = texImage->Depth; GLuint img, row; GLfloat (*rgba)[4]; GLuint (*rgba_uint)[4]; @@ -327,6 +327,11 @@ get_tex_rgba_uncompressed(struct gl_context *ctx, GLuint dimensions, return; } + if (texImage->TexObject->Target == GL_TEXTURE_1D_ARRAY) { + depth = height; + height = 1; + } + for (img = 0; img < depth; img++) { GLubyte *srcMap; GLint rowstride; -- 2.30.2