mesa: Add a helper function _mesa_need_luminance_to_rgb_conversion()

Cc: <mesa-stable@lists.freedesktop.org>
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
(cherry picked from commit c59c0f8a42)
This commit is contained in:
Anuj Phogat 2015-06-11 16:48:26 -07:00 committed by Emil Velikov
parent 831bf63e6b
commit def2d2e018
2 changed files with 22 additions and 0 deletions

View file

@ -60,6 +60,24 @@ _mesa_need_rgb_to_luminance_conversion(mesa_format texFormat, GLenum format)
format == GL_LUMINANCE_ALPHA_INTEGER_EXT);
}
/**
* Return true if the conversion L,I to RGB conversion is needed.
*/
GLboolean
_mesa_need_luminance_to_rgb_conversion(GLenum srcBaseFormat,
GLenum dstBaseFormat)
{
return (srcBaseFormat == GL_LUMINANCE ||
srcBaseFormat == GL_LUMINANCE_ALPHA ||
srcBaseFormat == GL_INTENSITY) &&
(dstBaseFormat == GL_GREEN ||
dstBaseFormat == GL_BLUE ||
dstBaseFormat == GL_RG ||
dstBaseFormat == GL_RGB ||
dstBaseFormat == GL_BGR ||
dstBaseFormat == GL_RGBA ||
dstBaseFormat == GL_BGRA);
}
/**
* Return transfer op flags for this ReadPixels operation.

View file

@ -40,6 +40,10 @@ _mesa_readpixels_needs_slow_path(const struct gl_context *ctx, GLenum format,
extern GLboolean
_mesa_need_rgb_to_luminance_conversion(mesa_format texFormat, GLenum format);
extern GLboolean
_mesa_need_luminance_to_rgb_conversion(GLenum srcBaseFormat,
GLenum dstBaseFormat);
extern GLbitfield
_mesa_get_readpixels_transfer_ops(const struct gl_context *ctx,
mesa_format texFormat,