From: Brian Paul Date: Fri, 3 Apr 2009 23:10:31 +0000 (-0600) Subject: mesa: clamp colors to [0,1] for glGetTexImage() when format is GL_LUMINANCE X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=35d88e1ac2cd34d5cc62f521654d79f5b24fcdf8;p=mesa.git mesa: clamp colors to [0,1] for glGetTexImage() when format is GL_LUMINANCE For luminance, we add R+G+B and it seems we should always clamp in case. --- diff --git a/src/mesa/main/texstore.c b/src/mesa/main/texstore.c index c65b9a99d8c..28e9d5c3ecb 100644 --- a/src/mesa/main/texstore.c +++ b/src/mesa/main/texstore.c @@ -4115,9 +4115,11 @@ _mesa_get_teximage(GLcontext *ctx, GLenum target, GLint level, * Looks like we need clamp though when going from format * containing negative values to unsigned format. */ - if (!type_with_negative_values(type) && - (texImage->TexFormat->DataType == GL_FLOAT || - texImage->TexFormat->DataType == GL_SIGNED_NORMALIZED)) + if (format == GL_LUMINANCE || format == GL_LUMINANCE_ALPHA) + transferOps |= IMAGE_CLAMP_BIT; + else if (!type_with_negative_values(type) && + (texImage->TexFormat->DataType == GL_FLOAT || + texImage->TexFormat->DataType == GL_SIGNED_NORMALIZED)) transferOps |= IMAGE_CLAMP_BIT; for (col = 0; col < width; col++) { @@ -4144,7 +4146,7 @@ _mesa_get_teximage(GLcontext *ctx, GLenum target, GLint level, } _mesa_pack_rgba_span_float(ctx, width, (GLfloat (*)[4]) rgba, format, type, dest, - &ctx->Pack, transferOps, GL_TRUE); + &ctx->Pack, transferOps, GL_FALSE); } /* format */ } /* row */ } /* img */