[GtkGLExt] reparenting a GtkDrawingArea with OpenGL



I originally posted this to the glade-users list, but I think it belongs in the gtkglext list instead.

I have  a window with two GtkDrawingArea's.  One is a map and one is a picture, I'm trying to swap the two windows with the click of a button.  Surrounding each drawing is a bunch of buttons and things. 

This is how I reparent them:

gtk_widget_ref(map_widget);
gtk_widget_ref(pic_widget);

gtk_container_remove(left_
container, map_widget);
gtk_container_remove(right_container, pic_widget);

gtk_container_add(left_container, pic_widget);
gtk_container_add(right_container, map_widget);

gtk_widget_unref(map_widget);
gtk_widget_unref(pic_widget);

The buttons, the boxes, and everything in the widgets swaps out, but the next time I try to draw in either of them, the gdk_gl_drawable_gl_begin fails:

GdkGKExt-CRITICAL **: gdk_gl_window_impl_x11_make_context_current: assertion 'GDK_IS_GL_CONTEXT_IMPL_X11 (glcontext)' failed

So, that's a bummer.  I didn't write the code I'm using to instantiate the widgets, or draw the pic/map.  I'm wondering if maybe the problem is that the "realize" event gets called twice, but all the gdk setup stuff is actually in a different method, one that doesn't get called twice.  The realize callback doesn't really have anything in it.

Any help would be appreciated.  I'm running in circles.

Jeff


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