I'm trying to write an app that lets me open multiple pthreaded windows and do OpenGL in them using the GtkGLExt. Unfortunately I'm running into a problem getting the drawable in my expose event.
At first it was just OpenGL stuff, but when I couldn't get the gldrawable and the glcontext I decided to reduce it to just normal Gdk drawing and that fails as well.
I made this structure:
typedef struct
{
GtkWidget *drawing_area;
GdkGLConfig *glconfig;
GdkGLContext *glcontext;
GdkGLDrawable *gldrawable;
} glargs;I set up the expose event like this:
glargs *garg;
if ((garg = (glargs *) calloc(1, sizeof(glargs))) == NULL) {
printf("Cannot calloc gl args.\n");
return NULL;
}
g_signal_connect(G_OBJECT(garg->drawing_area), "expose_event",
G_CALLBACK(expose_event), &garg);But in my expose event callback, it fails:
gboolean
expose_event(GtkWidget *widget,
GdkEventExpose *event,
gpointer data)
{
GdkDrawable *drawable;
glargs *g1 = (glargs *) data;
drawable = g1->drawing_area->window;
}
}
(grok:3095): Gdk-CRITICAL **: file gdkdraw.c: line 411
(gdk_draw_rectangle): assertion `GDK_IS_GC (gc)' failedI have realize and configure_event callbacks that get the drawable & context just fine.
I tested the pthread stuff with a GtkLabel and that works just fine with a background update thread & everything. Any ideas?
-- ------------------------------------------------------------------------ Ray Clouse STICS Lab ray.clouse AT boeing.com Don't fear the penguins. clouse AT rayclouse.org _______________________________________________ gtk-list mailing list [EMAIL PROTECTED] http://mail.gnome.org/mailman/listinfo/gtk-list
