[gtk+] GdkWindow: Try to use a Core 3.2 GL profile for the paint context



commit 9372cbdbf851f0570a4dbae0183b756ba8e477ca
Author: Alexander Larsson <alexl redhat com>
Date:   Thu Nov 6 09:15:03 2014 +0100

    GdkWindow: Try to use a Core 3.2 GL profile for the paint context
    
    If this is supported we avoid a lot of legacy baggage which we don't
    need.

 gdk/gdkwindow.c |   26 ++++++++++++++++++++------
 1 files changed, 20 insertions(+), 6 deletions(-)
---
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index b43d5d9..c74ca4e 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -2739,12 +2739,26 @@ gdk_window_get_paint_gl_context (GdkWindow *window, GError **error)
     }
 
   if (window->impl_window->gl_paint_context == NULL)
-    window->impl_window->gl_paint_context =
-      GDK_WINDOW_IMPL_GET_CLASS (window->impl)->create_gl_context (window,
-                                                                  TRUE,
-                                                                   GDK_GL_PROFILE_DEFAULT,
-                                                                   NULL,
-                                                                   error);
+    {
+      window->impl_window->gl_paint_context =
+        GDK_WINDOW_IMPL_GET_CLASS (window->impl)->create_gl_context (window,
+                                                                     TRUE,
+                                                                     GDK_GL_PROFILE_3_2_CORE,
+                                                                     NULL,
+                                                                     error);
+      if (window->impl_window->gl_paint_context == NULL &&
+          g_error_matches (*error, GDK_GL_ERROR,
+                           GDK_GL_ERROR_UNSUPPORTED_PROFILE))
+        {
+          g_clear_error (error);
+          window->impl_window->gl_paint_context =
+            GDK_WINDOW_IMPL_GET_CLASS (window->impl)->create_gl_context (window,
+                                                                         TRUE,
+                                                                         GDK_GL_PROFILE_DEFAULT,
+                                                                         NULL,
+                                                                         error);
+        }
+    }
 
   return window->impl_window->gl_paint_context;
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]