AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi OpenGL - Mehrere Fenster
Thema durchsuchen
Ansicht
Themen-Optionen

OpenGL - Mehrere Fenster

Ein Thema von Neutral General · begonnen am 20. Feb 2008 · letzter Beitrag vom 21. Feb 2008
Antwort Antwort
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

OpenGL - Mehrere Fenster

  Alt 20. Feb 2008, 14:08
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.
Ich erstelle das 2. OGL Fenter. OpenGL hört auf das Erste zu aktuallisieren. (neu zeichnen)
Ich erstelle das 3. OGL Fenster 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...
Aber das hat OpenGL keinen Spaß gemacht^^ bzw mein PC war etwas überfordert

Es gibt doch bestimmt irgendeine Möglichkeit OpenGL gleichzeitig in mehreren Fenstern zu nutzen oder?

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Lossy eX
Lossy eX

Registriert seit: 7. Aug 2007
113 Beiträge
 
#2

Re: OpenGL - Mehrere Fenster

  Alt 21. Feb 2008, 10:06
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.
Ich habe ja keine Vorurteile gegenüber Autofahrern ... aber Fahrer von BMW und Mercedes bestätigen diese regelmäßig.
Außerdem neue technologische Errungenschaften: Serienmäßig eingebaute Rechtsfahrsperre und der stromsparende Blinker.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:50 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