X-Git-Url: http://pileus.org/git/?p=grits;a=blobdiff_plain;f=src%2Fgtkgl.c;h=19f3219043273e18f82be3b976acf83d911b80ae;hp=32957f570bea3cb090557e1d0c31199bdaa78cc4;hb=5c17e7d79895982036139dcffb5c17cefb1d4d9f;hpb=1deeccd3a6203f50c3fa67c87b46d98a019b9e80 diff --git a/src/gtkgl.c b/src/gtkgl.c index 32957f5..19f3219 100644 --- a/src/gtkgl.c +++ b/src/gtkgl.c @@ -108,11 +108,16 @@ void gtk_gl_enable(GtkWidget *widget) g_object_set_data(G_OBJECT(widget), "glcontext", context); - /* Fix up colormap */ + /* Fix up visual/colormap */ +#if GTK_CHECK_VERSION(3,0,0) + GdkVisual *visual = gdk_x11_screen_lookup_visual(screen, xvinfo->visualid); + gtk_widget_set_visual(widget, visual); +#else GdkVisual *visual = gdk_x11_screen_lookup_visual(screen, xvinfo->visualid); GdkColormap *cmap = gdk_colormap_new(visual, FALSE); gtk_widget_set_colormap(widget, cmap); g_object_unref(cmap); +#endif XFree(xvinfo); /* Disable GTK double buffering */ @@ -300,6 +305,7 @@ void gtk_gl_begin(GtkWidget *widget) [ctx makeCurrentContext]; [ctx update]; [view setFrame:rect]; + [view setWantsBestResolutionOpenGLSurface:YES]; } void gtk_gl_end(GtkWidget *widget)