+ if ( !wxAppBase::OnInitGui() )
+ return FALSE;
+
+ GdkVisual *visual = gdk_visual_get_system();
+
+ // if this is a wxGLApp (derived from wxApp), and we've already
+ // chosen a specific visual, then derive the GdkVisual from that
+ if (m_glVisualInfo != NULL)
+ {
+#ifdef __WXGTK20__
+ // seems gtk_widget_set_default_visual no longer exists?
+ GdkVisual* vis = gtk_widget_get_default_visual();
+#else
+ GdkVisual* vis = gdkx_visual_get(
+ ((XVisualInfo *) m_glVisualInfo) ->visualid );
+ gtk_widget_set_default_visual( vis );
+#endif
+
+ GdkColormap *colormap = gdk_colormap_new( vis, FALSE );
+ gtk_widget_set_default_colormap( colormap );
+
+ visual = vis;
+ }
+
+ // On some machines, the default visual is just 256 colours, so
+ // we make sure we get the best. This can sometimes be wasteful.
+
+ else
+ if ((gdk_visual_get_best() != gdk_visual_get_system()) && (m_useBestVisual))
+ {
+#ifdef __WXGTK20__
+ /* seems gtk_widget_set_default_visual no longer exists? */
+ GdkVisual* vis = gtk_widget_get_default_visual();
+#else
+ GdkVisual* vis = gdk_visual_get_best();
+ gtk_widget_set_default_visual( vis );
+#endif
+
+ GdkColormap *colormap = gdk_colormap_new( vis, FALSE );
+ gtk_widget_set_default_colormap( colormap );
+
+ visual = vis;
+ }
+
+ // Nothing to do for 15, 16, 24, 32 bit displays
+ if (visual->depth > 8) return TRUE;
+
+ // initialize color cube for 8-bit color reduction dithering