Hi Martin,
I have a osgviewerGTK example waiting my attention in osg-submissions.
I'm steadily working through the backlog on submissions and should
get to this today.
Robert.
2008/5/8 "Martin Großer" <[EMAIL PROTECTED]>:
> 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
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org