diff options
author | Brian <[email protected]> | 2007-03-09 11:43:53 -0700 |
---|---|---|
committer | Brian <[email protected]> | 2007-03-09 11:43:53 -0700 |
commit | 2cf5fd48d1586f961910a14324a457854cb66221 (patch) | |
tree | 6b8690b1e3ac2b59369356d692214cc7d6a889c6 /src/mesa/main/image.c | |
parent | 9f44247acf62b91669f77974a4bbad687d58859e (diff) | |
parent | f9f79c8d770e696249bd98c68b563f887562c974 (diff) |
Merge branch 'origin' into glsl-compiler-1
Conflicts:
src/mesa/main/context.c
Diffstat (limited to 'src/mesa/main/image.c')
-rw-r--r-- | src/mesa/main/image.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/mesa/main/image.c b/src/mesa/main/image.c index fc8e1f0f574..eb91ebb6110 100644 --- a/src/mesa/main/image.c +++ b/src/mesa/main/image.c @@ -1182,15 +1182,24 @@ _mesa_pack_rgba_span_float(GLcontext *ctx, GLuint n, GLfloat rgba[][4], if (dstFormat == GL_LUMINANCE || dstFormat == GL_LUMINANCE_ALPHA) { /* compute luminance values */ - if (dstType != GL_FLOAT || ctx->Color.ClampReadColor == GL_TRUE) { + if (transferOps & IMAGE_RED_TO_LUMINANCE) { + /* Luminance = Red (glGetTexImage) */ for (i = 0; i < n; i++) { - GLfloat sum = rgba[i][RCOMP] + rgba[i][GCOMP] + rgba[i][BCOMP]; - luminance[i] = CLAMP(sum, 0.0F, 1.0F); + luminance[i] = rgba[i][RCOMP]; } } else { - for (i = 0; i < n; i++) { - luminance[i] = rgba[i][RCOMP] + rgba[i][GCOMP] + rgba[i][BCOMP]; + /* Luminance = Red + Green + Blue (glReadPixels) */ + if (dstType != GL_FLOAT || ctx->Color.ClampReadColor == GL_TRUE) { + for (i = 0; i < n; i++) { + GLfloat sum = rgba[i][RCOMP] + rgba[i][GCOMP] + rgba[i][BCOMP]; + luminance[i] = CLAMP(sum, 0.0F, 1.0F); + } + } + else { + for (i = 0; i < n; i++) { + luminance[i] = rgba[i][RCOMP] + rgba[i][GCOMP] + rgba[i][BCOMP]; + } } } } |