summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Ã…dahl <jadahl@gmail.com>2022-10-10 22:15:34 +0200
committerMarge Bot <marge-bot@gnome.org>2022-12-17 23:12:34 +0000
commitd8612720f6b14e971fddd244f68c6174b52222c0 (patch)
tree6388ca359d3ec156f8e968f531fe96eb151e1cd4
parent8e65e510d48be2d9e223b5b074716bb6946f26ed (diff)
downloadmutter-d8612720f6b14e971fddd244f68c6174b52222c0.tar.gz
cogl/driver/gles: Handle reading RGBA1010102 too
This means can read without loosing precision, compared to if we read a texture as rgb8. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2461>
-rw-r--r--cogl/cogl/driver/gl/gles/cogl-driver-gles.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/cogl/cogl/driver/gl/gles/cogl-driver-gles.c b/cogl/cogl/driver/gl/gles/cogl-driver-gles.c
index 41387a3eb..7e3a29b82 100644
--- a/cogl/cogl/driver/gl/gles/cogl-driver-gles.c
+++ b/cogl/cogl/driver/gl/gles/cogl-driver-gles.c
@@ -280,6 +280,13 @@ _cogl_driver_read_pixels_format_supported (CoglContext *context,
if (glformat == GL_RGBA && gltype == GL_UNSIGNED_BYTE)
return TRUE;
+ if (glintformat == GL_RGB10_A2_EXT &&
+ glformat == GL_RGBA &&
+ gltype == GL_UNSIGNED_INT_2_10_10_10_REV_EXT &&
+ _cogl_has_private_feature (context,
+ COGL_PRIVATE_FEATURE_TEXTURE_FORMAT_RGBA1010102))
+ return TRUE;
+
return FALSE;
}