Hi all, Newbie here. I am trying to create an opengl canvas for our gtk app ui (one of many interfaces) and am having little luck. I have followed the example laid out in template.c in order to try and create a "canvas" area but am consistently getting a segfault when (as per the example configure-event handler) I call gtk_widget_get_gl_context(). I've built the libraries from source on fc7 (not too sure if that is relevant). Below is the output from a ddd session, with some content coming from setting debug output on glext, some is mine (but based on calls to glglext functions)
I hope someone might be able to see something out of the ordinary..? GNU DDD 3.3.11 (i686-redhat-linux-gnu), by Dorothea Lütkehaus and Andreas Zeller. Copyright © 1995-1999 Technische Universität Braunschweig, Germany. Copyright © 1999-2001 Universität Passau, Germany. Copyright © 2001 Universität des Saarlandes, Germany. Copyright © 2001-2004 Free Software Foundation, Inc. Using host libthread_db library "/lib/libthread_db.so.1". (gdb) break gtk_canvas_configure_event Breakpoint 1 at 0x805fd19: file uio_gtk.c, line 431. (gdb) run -i gtk newtest_ui.u [Thread debugging using libthread_db enabled] [New Thread -1208350992 (LWP 5372)] GdkGLExt-Message: - gdk_gl_config_new () GdkGLExt-Message: -- gdk_gl_config_new_common () GdkGLExt-Message: -- Server GLX_VENDOR : NVIDIA Corporation GdkGLExt-Message: -- Server GLX_VERSION : 1.4 GdkGLExt-Message: -- Server GLX_EXTENSIONS : GLX_EXT_visual_info GLX_EXT_visual_rating GLX_SGIX_fbconfig GLX_SGIX_pbuffer GLX_SGI_video_sync GLX_SGI_swap_control GLX_EXT_texture_from_pixmap GLX_ARB_multisample GLX_NV_float_buffer GdkGLExt-Message: -- Client GLX_VENDOR : NVIDIA Corporation GdkGLExt-Message: -- Client GLX_VERSION : 1.4 GdkGLExt-Message: -- Client GLX_EXTENSIONS : GLX_ARB_get_proc_address GLX_ARB_multisample GLX_EXT_visual_info GLX_EXT_visual_rating GLX_EXT_import_context GLX_SGI_video_sync GLX_NV_swap_group GLX_NV_video_out GLX_SGIX_fbconfig GLX_SGIX_pbuffer GLX_SGI_swap_control GLX_NV_float_buffer GLX_ARB_fbconfig_float GLX_EXT_fbconfig_packed_float GLX_EXT_texture_from_pixmap GdkGLExt-Message: ** glXChooseVisual () GdkGLExt-Message: - gdk_gl_config_new () GdkGLExt-Message: -- gdk_gl_config_new_common () GdkGLExt-Message: ** glXChooseVisual () GdkGLExt-Message: -- glXChooseVisual: screen number = 0 GdkGLExt-Message: -- glXChooseVisual: visual id = 0x23 GdkGLExt-Message: -- gdk_gl_config_class_init () GdkGLExt-Message: -- gdk_gl_config_impl_x11_class_init () GdkGLExt-Message: -- gdk_gl_config_setup_colormap () GdkGLExt-Message: -- gdk_gl_config_get_std_rgb_colormap () GdkGLExt-Message: -- Colormap: new GdkGLExt-Message: -- Colormap: visual id = 0x23 Got config! gtkgl successfully initialised Canvas widget is: 0x98225c0 GtkGLExt-Message: - gtk_widget_set_gl_capability () Created canvas Internal: Setting a label on a list with no current label GtkGLExt-Message: -- gtk_gl_widget_style_set () GtkGLExt-Message: -- gtk_gl_widget_size_allocate () GtkGLExt-Message: -- gtk_gl_widget_configure_event () GtkGLExt-Message: -- gtk_gl_widget_realize () GdkGLExt-Message: - gdk_window_set_gl_capability () GdkGLExt-Message: - gdk_gl_window_new () GdkGLExt-Message: -- gdk_gl_window_class_init () GdkGLExt-Message: -- gdk_gl_window_impl_x11_class_init () GdkGLExt-Message: -- gdk_gl_window_impl_x11_gl_drawable_interface_init () GdkGLExt-Message: - window->bg_pixmap = (nil) GdkGLExt-Message: - window->bg_pixmap = 0x2 [Switching to Thread -1208350992 (LWP 5372)] Breakpoint 1, gtk_canvas_configure_event (widget=0x98225c0, event=0x98210b0, data=0x0) at uio_gtk.c:431 (gdb) next configure_event passed widget 0x98225c0 (gdb) next (gdb) next widget is gl capable (gdb) next (gdb) next gl window of widget 0x98225c0 is: 0x9836060 (gdb) step gtk_widget_get_gl_context (widget=0x98225c0) at gtkglwidget.c:476 /home/mike/gtkglext-1.2.0/gtk/gtkglwidget.c:476:13733:beg:0x1178fd (gdb) next ... (gdb) next (gdb) step gtk_widget_create_gl_context (widget=0x98225c0, share_list=0x0, direct=1, render_type=32788) at gtkglwidget.c:428 /home/mike/gtkglext-1.2.0/gtk/gtkglwidget.c:428:12536:beg:0x1177a4 (gdb) next (gdb) next GtkGLExt-Message: - gtk_widget_create_gl_context () (gdb) next ... (gdb) print gldrawable No symbol "gldrawable" in current context. (EDIT: Think this is a build/debugger issue?) ... (gdb) step Program received signal SIGSEGV, Segmentation fault. 0x00a51207 in XVisualIDFromVisual () from /usr/lib/libX11.so.6 Basically I get through the creation of the widget ok, but as soon as the configure_event handler is called, I get this segfault when trying to create a gl context. FYI the template example builds and runs perfectly. Any feedback/requests for more info gratefully received (apologies if this is a little long). Regards, M Hudson
_______________________________________________ gtkglext-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gtkglext-list
