Oh, I missed that we had that helper function available for this... With the patch that adds the integer formats to the helper function this is:
Reviewed-by: Iago Toral Quiroga <ito...@igalia.com> On Wed, 2015-06-10 at 16:54 -0700, Anuj Phogat wrote: > Signed-off-by: Anuj Phogat <anuj.pho...@gmail.com> > --- > src/mesa/main/readpix.c | 11 ++++------- > 1 file changed, 4 insertions(+), 7 deletions(-) > > diff --git a/src/mesa/main/readpix.c b/src/mesa/main/readpix.c > index 9166a50..cba9db8 100644 > --- a/src/mesa/main/readpix.c > +++ b/src/mesa/main/readpix.c > @@ -421,7 +421,7 @@ read_rgba_pixels( struct gl_context *ctx, > const struct gl_pixelstore_attrib *packing ) > { > GLbitfield transferOps; > - bool dst_is_integer, dst_is_luminance, needs_rebase; > + bool dst_is_integer, convert_rgb_to_lum, needs_rebase; > int dst_stride, src_stride, rb_stride; > uint32_t dst_format, src_format; > GLubyte *dst, *map; > @@ -442,10 +442,7 @@ read_rgba_pixels( struct gl_context *ctx, > dst_is_integer = _mesa_is_enum_format_integer(format); > dst_stride = _mesa_image_row_stride(packing, width, format, type); > dst_format = _mesa_format_from_format_and_type(format, type); > - dst_is_luminance = format == GL_LUMINANCE || > - format == GL_LUMINANCE_ALPHA || > - format == GL_LUMINANCE_INTEGER_EXT || > - format == GL_LUMINANCE_ALPHA_INTEGER_EXT; > + convert_rgb_to_lum = need_rgb_to_luminance_conversion(rb->Format, format); > dst = (GLubyte *) _mesa_image_address2d(packing, pixels, width, height, > format, type, 0, 0); > > @@ -493,7 +490,7 @@ read_rgba_pixels( struct gl_context *ctx, > */ > assert(!transferOps || (transferOps && !dst_is_integer)); > > - needs_rgba = transferOps || dst_is_luminance; > + needs_rgba = transferOps || convert_rgb_to_lum; > rgba = NULL; > if (needs_rgba) { > uint32_t rgba_format; > @@ -566,7 +563,7 @@ read_rgba_pixels( struct gl_context *ctx, > * If the dst format is Luminance, we need to do the conversion by > computing > * L=R+G+B values. > */ > - if (!dst_is_luminance) { > + if (!convert_rgb_to_lum) { > _mesa_format_convert(dst, dst_format, dst_stride, > src, src_format, src_stride, > width, height, _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev