diff options
author | Eric Anholt <[email protected]> | 2012-01-20 15:03:12 -0800 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2012-01-24 16:34:02 -0800 |
commit | 08acd4bd61430beb20a74af23de9f63c8f077467 (patch) | |
tree | 328d89cb2b7a264527cd801bc970dfd1ce5a4dd1 /src/mesa/main/texgetimage.c | |
parent | 86ca4f9cb66aa39c196ae5fc37f6a270d9a1156f (diff) |
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 <[email protected]>
Diffstat (limited to 'src/mesa/main/texgetimage.c')
-rw-r--r-- | src/mesa/main/texgetimage.c | 9 |
1 files 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; |