diff --git a/docs/reference/gtk/running.sgml b/docs/reference/gtk/running.sgml index 321593a7f1..3e5f688e8e 100644 --- a/docs/reference/gtk/running.sgml +++ b/docs/reference/gtk/running.sgml @@ -399,6 +399,10 @@ nevertheless. misc Miscellaneous information + + nogl + Turn off OpenGL. GDK will behave as if OpenGL support was not available. + nograbs Turn off all pointer and keyboard grabs diff --git a/gdk/gdk.c b/gdk/gdk.c index 0b2c3886b5..e40cdea1a3 100644 --- a/gdk/gdk.c +++ b/gdk/gdk.c @@ -149,6 +149,7 @@ static const GDebugKey gdk_debug_keys[] = { {"eventloop", GDK_DEBUG_EVENTLOOP}, {"frames", GDK_DEBUG_FRAMES}, {"settings", GDK_DEBUG_SETTINGS}, + {"nogl", GDK_DEBUG_NOGL}, {"opengl", GDK_DEBUG_OPENGL}, }; diff --git a/gdk/gdkinternals.h b/gdk/gdkinternals.h index d1eb2b1f7a..bb7b71a97e 100644 --- a/gdk/gdkinternals.h +++ b/gdk/gdkinternals.h @@ -85,7 +85,8 @@ typedef enum { GDK_DEBUG_EVENTLOOP = 1 << 10, GDK_DEBUG_FRAMES = 1 << 11, GDK_DEBUG_SETTINGS = 1 << 12, - GDK_DEBUG_OPENGL = 1 << 13 + GDK_DEBUG_NOGL = 1 << 13, + GDK_DEBUG_OPENGL = 1 << 14 } GdkDebugFlag; typedef enum { diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index 89a264c01d..25d20b1282 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -2722,6 +2722,14 @@ gdk_window_ref_impl_surface (GdkWindow *window) GdkGLContext * gdk_window_get_paint_gl_context (GdkWindow *window, GError **error) { + if (_gdk_debug_flags & GDK_DEBUG_NOGL) + { + g_set_error_literal (error, GDK_GL_ERROR, + GDK_GL_ERROR_NOT_AVAILABLE, + _("GL support disabled via GDK_DEBUG")); + return NULL; + } + 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,