OpenGl_Player
Download
- ZIP-Archiv (35 kB)
- GPLv3
- Plattformen:
- FreeBASIC 0.23.0
- Quelltext enthalten
- Angelegt von TJF am 24.02.2012 • Aktueller Dateiupload vom 24.02.2012
- Alle Dateiversionen
Bewertung
Bisher keine Bewertung(Zum Abstimmen auf die Sterne klicken.)
OpenGl_Player ist eine GTK-Applikation für win32 und LINUX. Sie arbeitet ähnlich wie bekannte 'Media-player', die zum Abspielen von Musik- oder Filmdateien verwendet werden. Jedoch sind die Medien, welche OpenGl_Player abspielt, mehr oder weniger kleine Programme mit OpenGl-Sequenzen (Module oder Plugins).
OpenGl-Player lädt beim Programmstart alle Module aus einem bestimmten Ordner und listet diese auf. Der Anwender wählt ein Modul aus dieser Liste, welches dann wie ein Film betrachtet werden kann, also gestartet, angehalten, wieder gestartet oder zum Anfang zurück gespult werden kann. Durch einfaches Wechseln der Listenauswahl können verschiedene Module nacheinander betrachtet und verglichen werden.
Ein Modul ist ein FreeBasic Programm, welches als dynamische Bibliothek mit dem Kommando fbc -dylib ... kompiliert wurde. Wenn während der Laufzeit von OpenGl_Player ein Modul neu kompiliert wird, dann kann dieses das zuvor geladene Modul ersetzen (refresh). Ebenso können nachträglich erstellte Module neu geladen und in die Liste aufgenommen werden (rescan).
OpenGl_Player eignet sich zur Erprobung von OpenGl-Sequenzen, z. B. zur Optimierung von Beleuchtungs- oder Materialparametern. Die betreffende Code-Sequenz wird als Modul formuliert. Das Kompilieren des kleinen Moduls erfolgt zügig und das Ergebnis kann sofort betrachtet werden. Während OpenGl_Player alle notwendigen Funktionen zum Betrachten beisteuert, kann der Quelltext im Modul auf das Wesentliche beschränkt werden.
Ein Modul kann natürlich auch Daten von der Festplatte laden, z. B. um Ergebnisse einer Simulationsrechnung abzuspielen. Oder die Simulation erfolgt online, während der Wiedergabe (, vgl. Beispiele ODE_...). Ebenfalls ist es in einem Modul möglich, ein GTK-Fenster zur Eingabe von Parametern durch den Benutzer oder auch zur Ausgabe von Parametern (z. B. als Liniengrafik) vorzusehen.
Das Archiv enthält den Quelltext, der noch kompiliert werden muss:
Datei | Beschreibung |
---|---|
src/OpenGl_Player.bas | der zu kompilierende Quelltext |
src/OpenGl_Player.bi | Header-Datei für alle Module |
src/OpenGl_Player.ui | GUI-XML-Datei |
src/tobac/*.bas | Quelltext für Signal-Handlers |
src/modules/empty.bas | ein leerer Quelltextrahmen für neue Module |
src/modules/Teapot.bas | Modul-Quelltext: tanzende Teekanne |
src/modules/ODE_Boxes.bas | Modul-Quelltext: fallender Boxenstapel |
src/modules/ODE_Bouncing.bas | Modul-Quelltext: Bälle fallen auf Box |
src/modules/ODE_Dominoes.bas | Modul-Quelltext: fallende Dominosteine |
src/modules/*_tobac.bas | Quelltext zur Anbindung von GUI-XML-Dateien |
src/modules/*.ui | GUI-XML-Dateien |
Technisches:
OpenGl_Player versucht eine Echtzeit-Darstellung zu realisieren. Dazu wird intern eine g_timeout-Funktion für die Simulation verwendet und anschließend wird der OpenGL Zeichenbereich aktualisiert. Dies geschieht standardmäßig mit einer Frame-Rate von 50 Bilder pro Sekunde. Wenn die Darstellung des letzten Frame nach der Berechnung noch nicht abgeschlossen ist, dann wird die Darstellung des nächsten Frame (und ggf. auch von weiteren Frames) übersprungen. Wenn jedoch auch die Berechnung länger dauert als die aktuelle Frame-Rate, dann erfolgt die Simulation nicht mehr in Echtzeit sondern verlangsamt.
Die Frame-Rate kann von einem Modul angepasst werden (und sollte beim Ausstieg aus dem Modul restauriert werden).
Folgende Bibliotheken sind zu installieren: GTK >= 2.16 (wegen GtkBuilder), GtkGlExt-1.2 und für die Module Ode-0.11.
Modul ODE_Bouncing.bas
Modul ODE_Boxes.bas
Modul ODE_Dominoes.bas
English
See English forum.