Hello,
I would like write a little gtk application to visualize a osg file. At the
moment my application can show me a OpenGL scene (DisplayList) and I use the
gtk (drawing area) and gtkglext-1.0.
Here a little abridgement.
[...]
// Window erzeugen
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (G_OBJECT (window), "delete_event", G_CALLBACK
(delete_event), NULL );
g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (destroy), NULL);
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
// automatsiches Aktualisieren, wenn sich was bei den Children
ändert
gtk_container_set_reallocate_redraws (GTK_CONTAINER (window),
TRUE);
// GL Configuration
GdkGLConfig *glconfig;
// Doppelpuffer-Technik
glconfig = gdk_gl_config_new_by_mode
((GdkGLConfigMode)(GDK_GL_MODE_RGBA | GDK_GL_MODE_DEPTH | GDK_GL_MODE_DOUBLE));
if (glconfig == NULL ) // wenn Doppelpuffer nicht unterstützt
wird
{
g_print ("ERROR: Doppelpuffer-Mode wird nicht
unterstützt.\n");
// Ohne Doppelpuffer konfigurieren
glconfig = gdk_gl_config_new_by_mode
((GdkGLConfigMode)(GDK_GL_MODE_RGBA | GDK_GL_MODE_DEPTH));
if(glconfig == NULL) // wenn kein OpenGL
unterstützt wird
{
g_print ("ERROR: OpenGL wird
nicht unterstützt.\n");
exit (1);
}
}
// Drawing Area erzeugen
drawing_area = gtk_drawing_area_new ();
gtk_widget_set_size_request (drawing_area, 800 , 600);
// Drawing Area ermöglichen ein GL Context zu rendern
gtk_widget_set_gl_capability (drawing_area, glconfig, NULL,
TRUE, GDK_GL_RGBA_TYPE);
// Events mit Callbacks verknüpfen
// Event zum ersten Initialisieren
g_signal_connect_after (G_OBJECT (drawing_area), "realize",
G_CALLBACK(realize_main), NULL );
// Event beim ändern des Fenster (z.B. hoehe oder breite)
g_signal_connect (G_OBJECT (drawing_area), "configure_event",
G_CALLBACK(configure_event), NULL );
// Event zum aktualiseren der Szene
g_signal_connect (G_OBJECT (drawing_area), "expose-event",
G_CALLBACK (expose_event), NULL );
[...]
Is it useful?
Cheers,
Martin
--
GMX startet ShortView.de. Hier findest Du Leute mit Deinen Interessen!
Jetzt dabei sein: http://www.shortview.de/[EMAIL PROTECTED]
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org