ich bin neu hier im Forum und bastel gerade ein wenig herum...
Ich würde gerne eine zweite 3D-Scene eröffnen, der zum Beispiel die aktuelle Ansicht nach hinten anzeigt.
Mit einem 2. Aufruf con wglMakeCurrent scheint es nicht zu funktionieren.
Und wenn ich diese Befehle auch noch zyklisch aufrufe, wächst der Speicher meiner Anwendung. Dazu müsste ich den Befehl wglDeleteContext nutzen und dann wieder initialiseren, aber das dauert ewig...
Gibts dazu noch ne Möglichkeit? Meine Objekte ändern sich ja nicht, ich möchte im 2. Fenster nur die Ansicht ändern.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Wenn du zwei getrennte OpenGL Fenster hast ist es prinzipiell egal was in ihnen dargestellt wird. Wie man sowas machen könnte kannst du dir in dem Template angucken welches 2Panels für die Ausgabe nutzt. (Siehe Files)
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Sollen die 2 Ausgabefenster den Nebeneinander oder Übereinander sein, oder zumindest auf dem selben Fenster ? Wenn ja, würde ich mir überlegen, das 2.Fenster (oder beide) in PBuffer zu rendern und das Fenster dann mit der Textur zu bekleben, kann sein, dass das weniger Speicher verbraucht.
_________________ Bevor du definierst, was etwas ist, versichere dich seiner Existenz.
Am einfachsten ist es immer noch einen Render Context zu benutzen und für die Ansichten dann nur den Viewport umzustellen und den Depth Buffer zu löschen.
@LarsMiddendorf: Das mit einem Rendercontext versteh ich nicht ganz, denn der benötigt ja das Handle der Form oder des Objects auf dem Delphi OpenGL zeichnet.
1)Ich meinte, wenn die zwei Fenster direkt nebeneinander angezeigt werden sollen, dann kann man es auch bei einem Context und z.B. nur einem Panel belassen und mit glViewport den benutzten Bereich einstellen.
2) Man kann auch einen bestehenden RC im Wechsel an zwei verschiedene Panels bzw. die zugehörigen DC's binden. Die einzige Bedingung ist, dass die Pixelformate exakt gleich sind.
Zuletzt geändert von LarsMiddendorf am Mo Mai 16, 2005 22:57, insgesamt 1-mal geändert.
Hm, ich bekomm es nicht hin, innerhalb eines Handles mit 2 Viewports zu arbeiten, ohne das der jeweil andere gelöscht wird. Durch den Befehl ändert sich ja sofort die Scene und der andere im Moment nicht genutzte Teil ist wieder schwarz...
Die Methode aus dem Template ergibt bei mir, kompiliert mit D5 jedesmal einen Speicherfresser - Ich hab nix verändert und das Programm start mit 12MB und wächst mit 200K/s. Das Template kann ich so nicht nutzen? Bin ich denn der einzige, bei dem das so ist?
2) Man kann auch einen bestehenden RC im Wechsel an zwei verschiedene Panels bzw. die zugehörigen DC's binden. Die einzige Bedingung ist, dass die Pixelformate exakt gleich sind.
Wenn du den Viewport änderst und dann darfst du mit glClear nur den Depth Buffer löschen, und den Color Buffer nur einmal am Anfang sonst ist ja alles wieder weg.
Registriert: Sa Nov 13, 2004 11:00 Beiträge: 229 Wohnort: Steinhude
Zitat:
Die Methode aus dem Template ergibt bei mir, kompiliert mit D5 jedesmal einen Speicherfresser - Ich hab nix verändert und das Programm start mit 12MB und wächst mit 200K/s. Das Template kann ich so nicht nutzen? Bin ich denn der einzige, bei dem das so ist?
Bei mir (dann D6 kompiliert) bleibt die auch konstant bei 12 mb.
Mitglieder in diesem Forum: Bing [Bot], Google [Bot] und 16 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.