mesa: set clamp bit in glGetTexImage for GL_UNSIGNED_NORMALIZED

Color clamping should be enabled in glGetTexImage if texture dataType is
GL_UNSIGNED_NORMALIZED and format is GL_LUMINANCE or GL_LUMINANCE_ALPHA

Fixes 2 Intel oglconform test cases: pxconv-gettex and pxtrans-gettex
https://bugs.freedesktop.org/show_bug.cgi?id=40864

NOTE: This is a candidate for the 8.0 branch

Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
Anuj Phogat 2012-01-24 20:06:27 -08:00
parent 5f65598cc7
commit 5665b5cc31

View file

@ -462,6 +462,15 @@ get_tex_rgba(struct gl_context *ctx, GLuint dimensions,
transferOps |= IMAGE_CLAMP_BIT;
}
}
/* This applies to RGB, RGBA textures. if the format is either LUMINANCE
* or LUMINANCE ALPHA, luminance (L) is computed as L=R+G+B .we need to
* clamp the sum to [0,1].
*/
else if ((format == GL_LUMINANCE ||
format == GL_LUMINANCE_ALPHA) &&
dataType == GL_UNSIGNED_NORMALIZED) {
transferOps |= IMAGE_CLAMP_BIT;
}
if (_mesa_is_format_compressed(texImage->TexFormat)) {
get_tex_rgba_compressed(ctx, dimensions, format, type,