cogl: Read pixels in the correct 32bit format as per the given bitmap
Fixes the gnome-shell screenshot tool from getting colors with the wrong byte order. https://bugzilla.gnome.org/show_bug.cgi?id=779234
This commit is contained in:
parent
89871e04aa
commit
95e9fa10ef
@ -1418,6 +1418,15 @@ _cogl_framebuffer_gl_read_pixels_into_bitmap (CoglFramebuffer *framebuffer,
|
|||||||
&gl_format,
|
&gl_format,
|
||||||
&gl_type);
|
&gl_type);
|
||||||
|
|
||||||
|
/* As we are reading pixels, we want to consider the bitmap according to
|
||||||
|
* its real pixel format, not the swizzled channels we pretend face to the
|
||||||
|
* pipeline.
|
||||||
|
*/
|
||||||
|
if ((format == COGL_PIXEL_FORMAT_BGRA_8888 ||
|
||||||
|
format == COGL_PIXEL_FORMAT_BGRA_8888_PRE) &&
|
||||||
|
_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_TEXTURE_SWIZZLE))
|
||||||
|
gl_format = GL_BGRA;
|
||||||
|
|
||||||
/* NB: All offscreen rendering is done upside down so there is no need
|
/* NB: All offscreen rendering is done upside down so there is no need
|
||||||
* to flip in this case... */
|
* to flip in this case... */
|
||||||
if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_MESA_PACK_INVERT) &&
|
if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_MESA_PACK_INVERT) &&
|
||||||
|
Loading…
Reference in New Issue
Block a user