mesa: Add RGBA to Luminance conversion helpers
authorIago Toral Quiroga <itoral@igalia.com>
Wed, 29 Oct 2014 12:32:43 +0000 (13:32 +0100)
committerIago Toral Quiroga <itoral@igalia.com>
Mon, 12 Jan 2015 10:20:29 +0000 (11:20 +0100)
commitd71a1adff253aa75a3474723209c35831bb3f048
treec76d0ebf4fbe34b10a6ada644dad7b67beb505ad
parenta177b30f1f2a74c14a649e9990eaab8826523c69
mesa: Add RGBA to Luminance conversion helpers

For glReadPixels with a Luminance destination format we compute luminance
values from RGBA as L=R+G+B. This, however, requires ad-hoc implementation,
since pack/unpack functions or _mesa_swizzle_and_convert won't do this
(and thus, neither will _mesa_format_convert). This patch adds helpers
to do this computation so they can be used to support conversion to luminance
formats.

The current implementation of glReadPixels does this computation as part
of the span functions in pack.c (see _mesa_pack_rgba_span_float), that do
this together with other things like type conversion, etc. We do not want
to use these functions but use _mesa_format_convert instead (later patches
will remove the color span functions), so we need to extract this functionality
as helpers.

Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
src/mesa/main/pack.c
src/mesa/main/pack.h