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
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to