+
+ /* Set OpenGL before "realize" */
+ if (!glconfig) {
+ g_warning("recreating glconfig");
+ glconfig = gdk_gl_config_new_by_mode(
+ GDK_GL_MODE_RGBA | GDK_GL_MODE_DEPTH |
+ GDK_GL_MODE_DOUBLE | GDK_GL_MODE_ALPHA);
+ }
+ if (!glconfig)
+ g_error("Failed to create glconfig, unsupported:%s%s%s%s.",
+ gdk_gl_config_new_by_mode(GDK_GL_MODE_RGBA) ? "" : " RGBA",
+ gdk_gl_config_new_by_mode(GDK_GL_MODE_DEPTH) ? "" : " DEPTH",
+ gdk_gl_config_new_by_mode(GDK_GL_MODE_DOUBLE) ? "" : " DEPTH",
+ gdk_gl_config_new_by_mode(GDK_GL_MODE_ALPHA) ? "" : " ALPHA");
+ if (!gtk_widget_set_gl_capability(GTK_WIDGET(opengl),
+ glconfig, NULL, TRUE, GDK_GL_RGBA_TYPE))
+ g_error("GL lacks required capabilities");
+
+ /* Finish OpenGL init after it's realized */