Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi OpenGL - Mehrere Fenster (https://www.delphipraxis.net/108857-opengl-mehrere-fenster.html)

Neutral General 20. Feb 2008 13:08


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:
DC := GetDC(Handle);
RC := wglCreateContext(DC);
wglMakeCurrent(DC,RC);
Ich habe auch schonmal versucht reihum jedes Fenster zu malen also diesen Code immer wieder abwechselnd im 1. bzw 2. Fenster auszuführen... :drunken:
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

Lossy eX 21. Feb 2008 09:06

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 01:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz