[gtk/gtk-3-24: 1/2] Fixed OpenGL extension detection for extensions promoted to OpenGL core.
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/gtk-3-24: 1/2] Fixed OpenGL extension detection for extensions promoted to OpenGL core.
- Date: Fri, 14 Feb 2020 11:33:04 +0000 (UTC)
commit 66e2e9c02a9f142ad3161f4957df7ad40baf150c
Author: David Hogan <david q hogan gmail com>
Date: Thu Feb 13 06:52:24 2020 +1100
Fixed OpenGL extension detection for extensions promoted to OpenGL core.
For a given OpenGL context, macOS in particular does not support enumeration / detection of OpenGL
features that have been promoted to core OpenGL functionality. It is possible other drivers are the same.
This change assumes support for GL_ARB_texture_non_power_of_two with OpenGL 2.0+, GL_ARB_texture_rectangle
with OpenGL 3.1+ and GL_EXT_framebuffer_blit with OpenGL 3.0+. I failed to find definitive information on
whether GL_GREMEDY_frame_terminator has been promoted to OpenGL core, or whether GL_ANGLE_framebuffer_blit or
GL_EXT_unpack_subimage have been promoted to core in OpenGL ES. This change results in a significant
GtkGLArea performance boost on macOS.
Closes #2428
gdk/gdkglcontext.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
---
diff --git a/gdk/gdkglcontext.c b/gdk/gdkglcontext.c
index dfbed63ca5..3b23639e1c 100644
--- a/gdk/gdkglcontext.c
+++ b/gdk/gdkglcontext.c
@@ -812,10 +812,10 @@ gdk_gl_context_check_extensions (GdkGLContext *context)
}
else
{
- has_npot = epoxy_has_gl_extension ("GL_ARB_texture_non_power_of_two");
- has_texture_rectangle = epoxy_has_gl_extension ("GL_ARB_texture_rectangle");
+ has_npot = priv->gl_version >= 20 || epoxy_has_gl_extension ("GL_ARB_texture_non_power_of_two");
+ has_texture_rectangle = priv->gl_version >= 31 || epoxy_has_gl_extension ("GL_ARB_texture_rectangle");
- priv->has_gl_framebuffer_blit = epoxy_has_gl_extension ("GL_EXT_framebuffer_blit");
+ priv->has_gl_framebuffer_blit = priv->gl_version >= 30 || epoxy_has_gl_extension
("GL_EXT_framebuffer_blit");
priv->has_frame_terminator = epoxy_has_gl_extension ("GL_GREMEDY_frame_terminator");
priv->has_unpack_subimage = TRUE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]