![]() |
OpenGL - Mehrere Fenster
Hi,
Also ich muss mit OpenGL gleichzeitig in mehreren Fenstern malen. Bisher geht es insofern als das man in beiden Bild sieht. Das klingt zwar als würde es schon gehen aber es ist eben so: Ich erstelle das 1. OGL Fenster. :arrow: :thumb: Ich erstelle das 2. OGL Fenter. :arrow: OpenGL hört auf das Erste zu aktuallisieren. (neu zeichnen) :? Ich erstelle das 3. OGL Fenster :arrow: OpenGL hört auf das Erste und das Zweite zu aktuallisieren (neu zeichnen). etc. Woran das liegt habe ich halbwegs herausgefunden:
Delphi-Quellcode:
Ich habe auch schonmal versucht reihum jedes Fenster zu malen also diesen Code immer wieder abwechselnd im 1. bzw 2. Fenster auszuführen... :drunken:
DC := GetDC(Handle);
RC := wglCreateContext(DC); wglMakeCurrent(DC,RC); Aber das hat OpenGL keinen Spaß gemacht^^ bzw mein PC war etwas überfordert :mrgreen: Es gibt doch bestimmt irgendeine Möglichkeit OpenGL gleichzeitig in mehreren Fenstern zu nutzen oder? :? Gruß Neutral General |
Re: OpenGL - Mehrere Fenster
So etwas ist kein Problem. Du musst nur vor dem Zeichnen auf einem Kontext diesen als Aktiv markieren bzw den Kontext an den aktuellen Thread binden. Denn pro Thread kann nur ein Kontext aktiv sein. Das machst du mit wglMakeCurrent. Aber beachte, dass so etwas eher sparsam gemacht werden sollte, da dieser Aufruf im Vergleich zu anderen OpenGL Aufrufen ziemlich teuer (viel Zeit) ist.
Es kann auch durchaus sein, dass die Fenster sich auch auf unterschiedlichen Grafikkarten befinden und somit unterschiedliche Erweiterungen abieten. Also entsprechend müsstest du beim Erstellen des Kontextes darauf Rücksicht nehmen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz