[GtkGLExt] segfault on configure event

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="" 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
(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
(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).

M Hudson

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]