[gtk/wip/otte/for-main: 1/2] gltexture: Only use glGetFramebufferParameter() when available
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/otte/for-main: 1/2] gltexture: Only use glGetFramebufferParameter() when available
- Date: Tue, 8 Feb 2022 00:35:06 +0000 (UTC)
commit 2c718253247b586ffb9e68e074bd7ef77e9e93f1
Author: Benjamin Otte <otte redhat com>
Date: Tue Feb 8 01:32:44 2022 +0100
gltexture: Only use glGetFramebufferParameter() when available
Fixes #4678
gdk/gdkgltexture.c | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
---
diff --git a/gdk/gdkgltexture.c b/gdk/gdkgltexture.c
index 40ccaf2add..23bc806c0d 100644
--- a/gdk/gdkgltexture.c
+++ b/gdk/gdkgltexture.c
@@ -175,10 +175,19 @@ gdk_gl_texture_do_download (gpointer texture_,
glGenFramebuffers (1, &fbo);
glBindFramebuffer (GL_FRAMEBUFFER, fbo);
glFramebufferTexture2D (GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, self->id, 0);
- glGetFramebufferParameteriv (GL_FRAMEBUFFER, GL_IMPLEMENTATION_COLOR_READ_FORMAT, &gl_read_format);
- glGetFramebufferParameteriv (GL_FRAMEBUFFER, GL_IMPLEMENTATION_COLOR_READ_TYPE, &gl_read_type);
- if (!gdk_gl_texture_find_format (gdk_gl_context_get_use_es (self->context), gl_read_format,
gl_read_type, &actual_format))
- actual_format = GDK_MEMORY_R8G8B8A8_PREMULTIPLIED; /* pray */
+ if (gdk_gl_context_check_version (self->context, 4, 3, 3, 1))
+ {
+ glGetFramebufferParameteriv (GL_FRAMEBUFFER, GL_IMPLEMENTATION_COLOR_READ_FORMAT, &gl_read_format);
+ glGetFramebufferParameteriv (GL_FRAMEBUFFER, GL_IMPLEMENTATION_COLOR_READ_TYPE, &gl_read_type);
+ if (!gdk_gl_texture_find_format (gdk_gl_context_get_use_es (self->context), gl_read_format,
gl_read_type, &actual_format))
+ actual_format = GDK_MEMORY_R8G8B8A8_PREMULTIPLIED; /* pray */
+ }
+ else
+ {
+ gl_read_format = GL_RGBA;
+ gl_read_type = GL_UNSIGNED_BYTE;
+ actual_format = GDK_MEMORY_R8G8B8A8_PREMULTIPLIED;
+ }
if (download->format == actual_format &&
(download->stride == expected_stride))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]