From: erg Date: Wed, 19 Mar 2008 21:43:58 +0000 (+0000) Subject: Clean up smyrna files: X-Git-Tag: LAST_LIBGRAPH~32^2~4482 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3b2f6594ee7accf4edca707a68ab1fae209d13fb;p=graphviz Clean up smyrna files: remove unnecessary globals modify libraries not to rely on code in cmd/smyrna remove static declarations from .h files remove unnecessary libraries mark unused code and clean up warnings --- diff --git a/cmd/smyrna/template.c b/cmd/smyrna/template.c index 0d74cb1b6..dc6496c4f 100755 --- a/cmd/smyrna/template.c +++ b/cmd/smyrna/template.c @@ -1,3 +1,18 @@ +/* vim:set shiftwidth=4 ts=8: */ + +/********************************************************** +* This software is part of the graphviz package * +* http://www.graphviz.org/ * +* * +* Copyright (c) 1994-2004 AT&T Corp. * +* and is licensed under the * +* Common Public License, Version 1.0 * +* by AT&T Corp. * +* * +* Information and Software Systems Research * +* AT&T Research, Florham Park NJ * +**********************************************************/ + #include @@ -44,15 +59,17 @@ * The following section contains the function prototype declarations. **************************************************************************/ -static void timeout_add (GtkWidget *widget); -static void timeout_remove (GtkWidget *widget); +#ifdef UNUSED +static void timeout_add(GtkWidget * widget); +static void timeout_remove(GtkWidget * widget); -static void toggle_animation (GtkWidget *widget); +static void toggle_animation(GtkWidget * widget); -static GdkGLConfig *configure_gl (void); +static GdkGLConfig *configure_gl(void); -static GtkWidget *create_popup_menu (GtkWidget *drawing_area); -static GtkWidget *create_window (GdkGLConfig *glconfig); +static GtkWidget *create_popup_menu(GtkWidget * drawing_area); +static GtkWidget *create_window(GdkGLConfig * glconfig); +#endif /************************************************************************** @@ -64,25 +81,26 @@ static GtkWidget *create_window (GdkGLConfig *glconfig); *** should be performed here, such as default background colour, *** certain states etc. ***/ -static void -realize (GtkWidget *widget, - gpointer data) +#ifdef UNUSED +static void realize(GtkWidget * widget, gpointer data) { - GdkGLContext *glcontext = gtk_widget_get_gl_context (widget); - GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable (widget); + GdkGLContext *glcontext = gtk_widget_get_gl_context(widget); + GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable(widget); - g_print ("%s: \"realize\"\n", gtk_widget_get_name (widget)); + g_print("%s: \"realize\"\n", gtk_widget_get_name(widget)); /*** OpenGL BEGIN ***/ - if (!gdk_gl_drawable_gl_begin (gldrawable, glcontext)) - return; + if (!gdk_gl_drawable_gl_begin(gldrawable, glcontext)) + return; /*** Fill in the details here. ***/ - gdk_gl_drawable_gl_end (gldrawable); + gdk_gl_drawable_gl_end(gldrawable); /*** OpenGL END ***/ } +#endif +#ifdef UNUSED /*** *** The "configure_event" signal handler. Any processing required when *** the OpenGL-capable drawing area is re-configured should be done here. @@ -90,30 +108,29 @@ realize (GtkWidget *widget, *** the window is resized. ***/ static gboolean -configure_event (GtkWidget *widget, - GdkEventConfigure *event, - gpointer data) +configure_event(GtkWidget * widget, + GdkEventConfigure * event, gpointer data) { - GdkGLContext *glcontext = gtk_widget_get_gl_context (widget); - GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable (widget); + GdkGLContext *glcontext = gtk_widget_get_gl_context(widget); + GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable(widget); - GLfloat w = widget->allocation.width; - GLfloat h = widget->allocation.height; + GLfloat w = widget->allocation.width; + GLfloat h = widget->allocation.height; - g_print ("%s: \"configure_event\"\n", gtk_widget_get_name (widget)); + g_print("%s: \"configure_event\"\n", gtk_widget_get_name(widget)); /*** OpenGL BEGIN ***/ - if (!gdk_gl_drawable_gl_begin (gldrawable, glcontext)) - return FALSE; + if (!gdk_gl_drawable_gl_begin(gldrawable, glcontext)) + return FALSE; /*** Fill in the details here. ***/ - glViewport (0, 0, w, h); + glViewport(0, 0, w, h); - gdk_gl_drawable_gl_end (gldrawable); + gdk_gl_drawable_gl_end(gldrawable); /*** OpenGL END ***/ - return TRUE; + return TRUE; } /*** @@ -122,33 +139,31 @@ configure_event (GtkWidget *widget, *** every time the 'expose'/'draw' event is signalled. ***/ static gboolean -expose_event (GtkWidget *widget, - GdkEventExpose *event, - gpointer data) +expose_event(GtkWidget * widget, GdkEventExpose * event, gpointer data) { - GdkGLContext *glcontext = gtk_widget_get_gl_context (widget); - GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable (widget); + GdkGLContext *glcontext = gtk_widget_get_gl_context(widget); + GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable(widget); - g_print ("%s: \"expose_event\"\n", gtk_widget_get_name (widget)); + g_print("%s: \"expose_event\"\n", gtk_widget_get_name(widget)); /*** OpenGL BEGIN ***/ - if (!gdk_gl_drawable_gl_begin (gldrawable, glcontext)) - return FALSE; + if (!gdk_gl_drawable_gl_begin(gldrawable, glcontext)) + return FALSE; - glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); /*** Fill in the details here. ***/ - /* Swap buffers */ - if (gdk_gl_drawable_is_double_buffered (gldrawable)) - gdk_gl_drawable_swap_buffers (gldrawable); - else - glFlush (); + /* Swap buffers */ + if (gdk_gl_drawable_is_double_buffered(gldrawable)) + gdk_gl_drawable_swap_buffers(gldrawable); + else + glFlush(); - gdk_gl_drawable_gl_end (gldrawable); + gdk_gl_drawable_gl_end(gldrawable); /*** OpenGL END ***/ - return TRUE; + return TRUE; } /*** @@ -156,42 +171,39 @@ expose_event (GtkWidget *widget, *** timeout functions are suitable for continous *** frame updates. ***/ -static gboolean -timeout (GtkWidget *widget) +static gboolean timeout(GtkWidget * widget) { - g_print ("."); + g_print("."); /*** Fill in the details here ***/ - /* Invalidate the whole window. */ - gdk_window_invalidate_rect (widget->window, &widget->allocation, FALSE); + /* Invalidate the whole window. */ + gdk_window_invalidate_rect(widget->window, &widget->allocation, FALSE); - /* Update synchronously. */ - gdk_window_process_updates (widget->window, FALSE); + /* Update synchronously. */ + gdk_window_process_updates(widget->window, FALSE); - return TRUE; + return TRUE; } /*** *** The "unrealize" signal handler. Any processing required when *** the OpenGL-capable window is unrealized should be done here. ***/ -static void -unrealize (GtkWidget *widget, - gpointer data) +static void unrealize(GtkWidget * widget, gpointer data) { - GdkGLContext *glcontext = gtk_widget_get_gl_context (widget); - GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable (widget); + GdkGLContext *glcontext = gtk_widget_get_gl_context(widget); + GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable(widget); - g_print ("%s: \"unrealize\"\n", gtk_widget_get_name (widget)); + g_print("%s: \"unrealize\"\n", gtk_widget_get_name(widget)); /*** OpenGL BEGIN ***/ - if (!gdk_gl_drawable_gl_begin (gldrawable, glcontext)) - return; + if (!gdk_gl_drawable_gl_begin(gldrawable, glcontext)) + return; /*** Fill in the details here. ***/ - gdk_gl_drawable_gl_end (gldrawable); + gdk_gl_drawable_gl_end(gldrawable); /*** OpenGL END ***/ } @@ -200,32 +212,29 @@ unrealize (GtkWidget *widget, *** the OpenGL-capable drawing area is under drag motion should be done here. ***/ static gboolean -motion_notify_event (GtkWidget *widget, - GdkEventMotion *event, - gpointer data) +motion_notify_event(GtkWidget * widget, + GdkEventMotion * event, gpointer data) { - g_print ("%s: \"motion_notify_event\": button", gtk_widget_get_name (widget)); + g_print("%s: \"motion_notify_event\": button", + gtk_widget_get_name(widget)); /*** Fill in the details here. ***/ - if (event->state & GDK_BUTTON1_MASK) - { - g_print (" 1"); + if (event->state & GDK_BUTTON1_MASK) { + g_print(" 1"); } - if (event->state & GDK_BUTTON2_MASK) - { - g_print (" 2"); + if (event->state & GDK_BUTTON2_MASK) { + g_print(" 2"); } - if (event->state & GDK_BUTTON3_MASK) - { - g_print (" 3"); + if (event->state & GDK_BUTTON3_MASK) { + g_print(" 3"); } - g_print ("\n"); + g_print("\n"); - return FALSE; + return FALSE; } /*** @@ -234,54 +243,50 @@ motion_notify_event (GtkWidget *widget, *** capable drawing area should be done here. ***/ static gboolean -button_press_event (GtkWidget *widget, - GdkEventButton *event, - gpointer data) +button_press_event(GtkWidget * widget, + GdkEventButton * event, gpointer data) { - g_print ("%s: \"button_press_event\": ", gtk_widget_get_name (widget)); + g_print("%s: \"button_press_event\": ", gtk_widget_get_name(widget)); - if (event->button == 1) - { + if (event->button == 1) { /*** Fill in the details here. ***/ - g_print ("button 1\n"); + g_print("button 1\n"); - return TRUE; + return TRUE; } - if (event->button == 2) - { + if (event->button == 2) { /*** Fill in the details here. ***/ - g_print ("button 2\n"); + g_print("button 2\n"); - return TRUE; + return TRUE; } - g_print ("\n"); + g_print("\n"); - return FALSE; + return FALSE; } /* For popup menu. */ static gboolean -button_press_event_popup_menu (GtkWidget *widget, - GdkEventButton *event, - gpointer data) +button_press_event_popup_menu(GtkWidget * widget, + GdkEventButton * event, gpointer data) { - g_print ("%s: \"button_press_event_popup\": ", gtk_widget_get_name (widget)); + g_print("%s: \"button_press_event_popup\": ", + gtk_widget_get_name(widget)); - if (event->button == 3) - { - g_print ("button 3\n"); + if (event->button == 3) { + g_print("button 3\n"); - /* Popup menu. */ - gtk_menu_popup (GTK_MENU (widget), NULL, NULL, NULL, NULL, - event->button, event->time); - return TRUE; + /* Popup menu. */ + gtk_menu_popup(GTK_MENU(widget), NULL, NULL, NULL, NULL, + event->button, event->time); + return TRUE; } - g_print ("\n"); + g_print("\n"); - return FALSE; + return FALSE; } /*** @@ -289,32 +294,29 @@ button_press_event_popup_menu (GtkWidget *widget, *** presses occur should be done here. ***/ static gboolean -key_press_event (GtkWidget *widget, - GdkEventKey *event, - gpointer data) +key_press_event(GtkWidget * widget, GdkEventKey * event, gpointer data) { - g_print ("%s: \"key_press_event\": ", gtk_widget_get_name (widget)); + g_print("%s: \"key_press_event\": ", gtk_widget_get_name(widget)); - switch (event->keyval) - { + switch (event->keyval) { /*** Fill in the details here. ***/ case GDK_a: - g_print ("a key\n"); + g_print("a key\n"); // toggle_animation (widget); - break; + break; case GDK_Escape: - g_print ("Escape key\n"); - gtk_main_quit (); - break; + g_print("Escape key\n"); + gtk_main_quit(); + break; default: - g_print("\n"); - return FALSE; + g_print("\n"); + return FALSE; } - return TRUE; + return TRUE; } @@ -328,24 +330,19 @@ key_press_event (GtkWidget *widget, static guint timeout_id = 0; -static void -timeout_add (GtkWidget *widget) +static void timeout_add(GtkWidget * widget) { - if (timeout_id == 0) - { - timeout_id = g_timeout_add (TIMEOUT_INTERVAL, - (GSourceFunc) timeout, - widget); + if (timeout_id == 0) { + timeout_id = g_timeout_add(TIMEOUT_INTERVAL, + (GSourceFunc) timeout, widget); } } -static void -timeout_remove (GtkWidget *widget) +static void timeout_remove(GtkWidget * widget) { - if (timeout_id != 0) - { - g_source_remove (timeout_id); - timeout_id = 0; + if (timeout_id != 0) { + g_source_remove(timeout_id); + timeout_id = 0; } } @@ -354,12 +351,10 @@ timeout_remove (GtkWidget *widget) *** OpenGL-capable drawing area is mapped should be done here. ***/ static gboolean -map_event (GtkWidget *widget, - GdkEvent *event, - gpointer data) +map_event(GtkWidget * widget, GdkEvent * event, gpointer data) { - g_print ("%s: \"map_event\":\n", gtk_widget_get_name (widget)); - return TRUE; + g_print("%s: \"map_event\":\n", gtk_widget_get_name(widget)); + return TRUE; } /*** @@ -367,14 +362,12 @@ map_event (GtkWidget *widget, *** OpenGL-capable drawing area is unmapped should be done here. ***/ static gboolean -unmap_event (GtkWidget *widget, - GdkEvent *event, - gpointer data) +unmap_event(GtkWidget * widget, GdkEvent * event, gpointer data) { - g_print ("%s: \"unmap_event\":\n", gtk_widget_get_name (widget)); - timeout_remove (widget); + g_print("%s: \"unmap_event\":\n", gtk_widget_get_name(widget)); + timeout_remove(widget); - return TRUE; + return TRUE; } /*** @@ -383,13 +376,13 @@ unmap_event (GtkWidget *widget, *** done here. ***/ static gboolean -visibility_notify_event (GtkWidget *widget, - GdkEventVisibility *event, - gpointer data) +visibility_notify_event(GtkWidget * widget, + GdkEventVisibility * event, gpointer data) { - return TRUE; + return TRUE; } +#endif @@ -400,141 +393,142 @@ visibility_notify_event (GtkWidget *widget, /*** *** Creates the popup menu to be displayed. ***/ -static GtkWidget * -create_popup_menu (GtkWidget *drawing_area) +#ifdef UNUSED +static GtkWidget *create_popup_menu(GtkWidget * drawing_area) { - GtkWidget *menu; - GtkWidget *menu_item; + GtkWidget *menu; + GtkWidget *menu_item; - menu = gtk_menu_new (); + menu = gtk_menu_new(); - /* Toggle animation */ - menu_item = gtk_menu_item_new_with_label ("Toggle Animation"); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + /* Toggle animation */ + menu_item = gtk_menu_item_new_with_label("Toggle Animation"); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item); // g_signal_connect_swapped (G_OBJECT (menu_item), "activate", -// G_CALLBACK (toggle_animation), drawing_area); - gtk_widget_show (menu_item); - - /* Quit */ - menu_item = gtk_menu_item_new_with_label ("Quit"); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); - g_signal_connect (G_OBJECT (menu_item), "activate", - G_CALLBACK (gtk_main_quit), NULL); - gtk_widget_show (menu_item); - - return menu; +// G_CALLBACK (toggle_animation), drawing_area); + gtk_widget_show(menu_item); + + /* Quit */ + menu_item = gtk_menu_item_new_with_label("Quit"); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item); + g_signal_connect(G_OBJECT(menu_item), "activate", + G_CALLBACK(gtk_main_quit), NULL); + gtk_widget_show(menu_item); + + return menu; } +#endif /*** *** Creates the simple application window with one *** drawing area that has an OpenGL-capable visual. ***/ -static GtkWidget * -create_window (GdkGLConfig *glconfig) +#ifdef UNUSED +static GtkWidget *create_window(GdkGLConfig * glconfig) { - GtkWidget *window; - GtkWidget *vbox; - GtkWidget *drawing_area; - GtkWidget *menu; - GtkWidget *button; + GtkWidget *window; + GtkWidget *vbox; + GtkWidget *drawing_area; + GtkWidget *menu; + GtkWidget *button; - /* - * Top-level window. - */ + /* + * Top-level window. + */ // window = gtk_window_new (GTK_WINDOW_TOPLEVEL); // gtk_window_set_title (GTK_WINDOW (window), DEFAULT_TITLE); - /* Get automatically redrawn if any of their children changed allocation. */ - gtk_container_set_reallocate_redraws (GTK_CONTAINER (window), TRUE); + /* Get automatically redrawn if any of their children changed allocation. */ + gtk_container_set_reallocate_redraws(GTK_CONTAINER(window), TRUE); - /* Connect signal handlers to the window */ - g_signal_connect (G_OBJECT (window), "delete_event", - G_CALLBACK (gtk_main_quit), NULL); + /* Connect signal handlers to the window */ + g_signal_connect(G_OBJECT(window), "delete_event", + G_CALLBACK(gtk_main_quit), NULL); - /* - * VBox. - */ + /* + * VBox. + */ - vbox = gtk_vbox_new (FALSE, 0); - gtk_container_add (GTK_CONTAINER (window), vbox); - gtk_widget_show (vbox); + vbox = gtk_vbox_new(FALSE, 0); + gtk_container_add(GTK_CONTAINER(window), vbox); + gtk_widget_show(vbox); - /* - * Drawing area to draw OpenGL scene. - */ + /* + * Drawing area to draw OpenGL scene. + */ - drawing_area = gtk_drawing_area_new (); - gtk_widget_set_size_request (drawing_area, DEFAULT_WIDTH, DEFAULT_HEIGHT); + drawing_area = gtk_drawing_area_new(); + gtk_widget_set_size_request(drawing_area, DEFAULT_WIDTH, + DEFAULT_HEIGHT); - /* Set OpenGL-capability to the widget */ - gtk_widget_set_gl_capability (drawing_area, - glconfig, - NULL, - TRUE, - GDK_GL_RGBA_TYPE); + /* Set OpenGL-capability to the widget */ + gtk_widget_set_gl_capability(drawing_area, + glconfig, NULL, TRUE, GDK_GL_RGBA_TYPE); - gtk_widget_add_events (drawing_area, - GDK_BUTTON1_MOTION_MASK | - GDK_BUTTON2_MOTION_MASK | - GDK_BUTTON_PRESS_MASK | - GDK_VISIBILITY_NOTIFY_MASK); + gtk_widget_add_events(drawing_area, + GDK_BUTTON1_MOTION_MASK | + GDK_BUTTON2_MOTION_MASK | + GDK_BUTTON_PRESS_MASK | + GDK_VISIBILITY_NOTIFY_MASK); - /* Connect signal handlers to the drawing area */ - g_signal_connect_after (G_OBJECT (drawing_area), "realize", - G_CALLBACK (realize), NULL); - g_signal_connect (G_OBJECT (drawing_area), "configure_event", - G_CALLBACK (configure_event), NULL); - g_signal_connect (G_OBJECT (drawing_area), "expose_event", - G_CALLBACK (expose_event), NULL); - g_signal_connect (G_OBJECT (drawing_area), "unrealize", - G_CALLBACK (unrealize), NULL); + /* Connect signal handlers to the drawing area */ + g_signal_connect_after(G_OBJECT(drawing_area), "realize", + G_CALLBACK(realize), NULL); + g_signal_connect(G_OBJECT(drawing_area), "configure_event", + G_CALLBACK(configure_event), NULL); + g_signal_connect(G_OBJECT(drawing_area), "expose_event", + G_CALLBACK(expose_event), NULL); + g_signal_connect(G_OBJECT(drawing_area), "unrealize", + G_CALLBACK(unrealize), NULL); - g_signal_connect (G_OBJECT (drawing_area), "motion_notify_event", - G_CALLBACK (motion_notify_event), NULL); - g_signal_connect (G_OBJECT (drawing_area), "button_press_event", - G_CALLBACK (button_press_event), NULL); + g_signal_connect(G_OBJECT(drawing_area), "motion_notify_event", + G_CALLBACK(motion_notify_event), NULL); + g_signal_connect(G_OBJECT(drawing_area), "button_press_event", + G_CALLBACK(button_press_event), NULL); - /* key_press_event handler for top-level window */ - g_signal_connect_swapped (G_OBJECT (window), "key_press_event", - G_CALLBACK (key_press_event), drawing_area); + /* key_press_event handler for top-level window */ + g_signal_connect_swapped(G_OBJECT(window), "key_press_event", + G_CALLBACK(key_press_event), drawing_area); - /* For timeout function. */ - g_signal_connect (G_OBJECT (drawing_area), "map_event", - G_CALLBACK (map_event), NULL); - g_signal_connect (G_OBJECT (drawing_area), "unmap_event", - G_CALLBACK (unmap_event), NULL); - g_signal_connect (G_OBJECT (drawing_area), "visibility_notify_event", - G_CALLBACK (visibility_notify_event), NULL); + /* For timeout function. */ + g_signal_connect(G_OBJECT(drawing_area), "map_event", + G_CALLBACK(map_event), NULL); + g_signal_connect(G_OBJECT(drawing_area), "unmap_event", + G_CALLBACK(unmap_event), NULL); + g_signal_connect(G_OBJECT(drawing_area), "visibility_notify_event", + G_CALLBACK(visibility_notify_event), NULL); - gtk_box_pack_start (GTK_BOX (vbox), drawing_area, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), drawing_area, TRUE, TRUE, 0); - gtk_widget_show (drawing_area); + gtk_widget_show(drawing_area); - /* - * Popup menu. - */ + /* + * Popup menu. + */ - menu = create_popup_menu (drawing_area); + menu = create_popup_menu(drawing_area); - g_signal_connect_swapped (G_OBJECT (drawing_area), "button_press_event", - G_CALLBACK (button_press_event_popup_menu), menu); + g_signal_connect_swapped(G_OBJECT(drawing_area), "button_press_event", + G_CALLBACK(button_press_event_popup_menu), + menu); - /* - * Simple quit button. - */ + /* + * Simple quit button. + */ - button = gtk_button_new_with_label ("Quit"); + button = gtk_button_new_with_label("Quit"); - g_signal_connect (G_OBJECT (button), "clicked", - G_CALLBACK (gtk_main_quit), NULL); + g_signal_connect(G_OBJECT(button), "clicked", + G_CALLBACK(gtk_main_quit), NULL); - gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 0); - gtk_widget_show (button); + gtk_widget_show(button); - return window; + return window; } +#endif /************************************************************************** @@ -544,29 +538,28 @@ create_window (GdkGLConfig *glconfig) /*** *** Configure the OpenGL framebuffer. ***/ -static GdkGLConfig * -configure_gl (void) +#ifdef UNUSED +static GdkGLConfig *configure_gl(void) { - GdkGLConfig *glconfig; - - /* Try double-buffered visual */ - glconfig = gdk_gl_config_new_by_mode (GDK_GL_MODE_RGB | - GDK_GL_MODE_DEPTH | - GDK_GL_MODE_DOUBLE); - if (glconfig == NULL) - { - g_print ("\n*** Cannot find the double-buffered visual.\n"); - g_print ("\n*** Trying single-buffered visual.\n"); - - /* Try single-buffered visual */ - glconfig = gdk_gl_config_new_by_mode (GDK_GL_MODE_RGB | - GDK_GL_MODE_DEPTH); - if (glconfig == NULL) - { - g_print ("*** No appropriate OpenGL-capable visual found.\n"); - exit (1); + GdkGLConfig *glconfig; + + /* Try double-buffered visual */ + glconfig = gdk_gl_config_new_by_mode(GDK_GL_MODE_RGB | + GDK_GL_MODE_DEPTH | + GDK_GL_MODE_DOUBLE); + if (glconfig == NULL) { + g_print("\n*** Cannot find the double-buffered visual.\n"); + g_print("\n*** Trying single-buffered visual.\n"); + + /* Try single-buffered visual */ + glconfig = gdk_gl_config_new_by_mode(GDK_GL_MODE_RGB | + GDK_GL_MODE_DEPTH); + if (glconfig == NULL) { + g_print("*** No appropriate OpenGL-capable visual found.\n"); + exit(1); } } - return glconfig; + return glconfig; } +#endif