Registriert: Do Jun 09, 2005 13:48 Beiträge: 117 Wohnort: Sankt Augustin
Hallo,
ich möchte in meiner Anwendung mehrere Fenster öffnen und in jedem Fenster beliebige OpenGL Ausgaben durchführen. Nun habe ich das Problem, dass ich bei der Initialisierung von OpenGL den RenderingContext einem Fenster fest zuordne. Ist es möglich das variabel zu gestalten oder mehr als einen RenderingContext zuzuordnen?
Ich dachte, dass ich bei der Aktivierung eines Fensters einfach sage zeichne jetzt mit einem anderen Kontext...
Registriert: Di Nov 26, 2002 22:12 Beiträge: 259 Wohnort: Dresden
In unserer Downloadsektion gibt es ein Beispiel für ein Programm mit 2 Renderkontexten.
_________________ Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jederman ist überzeugt, dass er genug davon habe.
Rene Descartes, frz. Mathematiker u. Philosoph, 1596-1650
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Das im Downloadbereich ist denke ich mal nicht ganz das richtige, da es mehrere Kontexte auf einem Fenster beinhält. Wenn ich dich verstanden habe möchtest du es ja mit unterschiedlichen Fenstern. Und da geht es wesentlich kompfortabler.
Aber ja. Das ist alles andere als schwer. Wichtig ist dabei, dass deine DC und RC Variablen bestandteil des Fensters sein sollten. Wenn du den Kontext dann im OnShow erzeugst und und im OnClose wieder zerstörst, hast du schon fast alles wichtigste. Wenn du jetzt mehrere Fenster erstellst bekommst du auch automatisch mehrere Kontexte. Wichtig wäre dann ihm eine Rendermethode zuzuweisen. Das könntest du zum Beispiel als Event gestalten.
Wichtig ist lediglich, dass jeder Kontext und DC eigene Variablen haben. Was du da außen rum noch machst ist OpenGL so etwas von egal.
PS: Wenn du auf einen entsprechenden Kontext rendern möchtest, musst du diesen erst aktivieren. Benutz dazu am Besten die Methode. wglMakeCurrent. In der dglOpenGL befindet sich dafür auch eine Methode. Diese Lädt allerdings die Extensions neu. Das kannst man aber verhindern in dem man den LoadExt Parameter auf False setzt. Solltest du mit Kontexten arbeiten die unterschiedliche Einstellungen (nicht unterschiedliche Fenster) besitzen wie Farbtiefe (einer 16 andere 32 Bit), ZBuffer oder ähnliches, dann bietet es sich an, dass du die Extensions neu laden lässt. Da sich dort fundamental etwas am Funktionsumfang ändern kann.
Mitglieder in diesem Forum: 0 Mitglieder und 27 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.