Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Jun 19, 2025 22:47

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: OpenGL in mehreren Fenstern
BeitragVerfasst: Fr Jul 20, 2012 14:38 
Offline
DGL Member

Registriert: Mi Jul 18, 2012 17:36
Beiträge: 4
Programmiersprache: Delphi
Hallo,
ich versuche unter Delphi 7, Windows 7, mehrere unabhängige Fenster mit jeweils einer OpenGL-Instanz zu erzeugen und darzustellen. Jedes Fenster für sich läuft problemlos, wenn das andere jeweils nicht erzeugt worden ist. Erzeuge ich jedoch erst das erste Fenster (mit eigenen DC, RC etc.) und dann das zweite, kommt es in der dglOpenGL-Routine ReadCoreVersion zu einem Zugriffsfehler.

Hat jemand vielleicht einen kurzen Beispielcode mit zwei OpenGL-Fenstern, die gleichzeitig laufen?

Bei Bedarf kann ich meinen Code bereitstellen, der allerdings in ein großes Anwendungsprogramm eingebettet ist.

Grüße

Thomas


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenGL in mehreren Fenstern
BeitragVerfasst: Sa Jul 21, 2012 12:06 
Offline
DGL Member

Registriert: Mo Nov 09, 2009 12:01
Beiträge: 200
Ich kann nicht genau sagen, was bei Dir das Problem ist.
Aber vor einiger Zeit habe ich soetwas bei mir realisiert. Das Problem war das Binding.
Wenn Du jeweils mit einem Fenster (OGL-Instanz) arbeitest, dann mußt Du vor dem Rendern erst das neue Fenster binden. Und der größte gedankliche Schritt war bei mir, dass sogar beim Destroyen erst die richtige Instanz gebunden werden muß.

Gruss Jens

oh, ein Kollege.. :D


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenGL in mehreren Fenstern
BeitragVerfasst: Sa Jul 21, 2012 15:18 
Offline
DGL Member

Registriert: Mi Jul 18, 2012 17:36
Beiträge: 4
Programmiersprache: Delphi
Hmm, Kollege?

Bin leider nicht sehr tief drin in OpenGL, was verbirgt sich hinter Binding und wie mache ich das?

Danke ...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenGL in mehreren Fenstern
BeitragVerfasst: Sa Jul 21, 2012 15:32 
Offline
DGL Member

Registriert: Mo Nov 09, 2009 12:01
Beiträge: 200
Das Binden geht mit wglMakeCurrent.

Jedes Fenster muß sich RC und DC merken und vor dem Rendern binden.
Probleme kann es mit gedockten Fenstern geben, wenn sie entdockt oder gedockt werden. Es ändert sich dann das Handle und eben RC/DC

Das könnte ein Beispiel sein.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenGL in mehreren Fenstern
BeitragVerfasst: Sa Jul 21, 2012 16:33 
Offline
DGL Member

Registriert: Mi Jul 18, 2012 17:36
Beiträge: 4
Programmiersprache: Delphi
Vielen Dank, hatte wglMakeCurrent aus irgendeinem Grund auskommentiert. Jetzt gibt es keinen Absturz mehr, aber leider geht es immer noch nicht richtig. Ich mache folgendes:

1. Im Hauptfenster meiner Anwendung erzeuge ich beim Programmstart ein TFrame-Objekt, in dem wiederum ein TPanel zum Zeichnen für OpenGL vorhanden ist. Alle notwendigen Variablen (RC, DC usw) sind lokal für das TFRame-Objekt und bleiben bis zur Beendigung der Anwendung erhalten. Beim ersten Anzeigen des TFrames wird korrekt gezeichnet.

2. Dann erzeuge ich ein völlig unabhängiges Fenster, in dem eine andere OpenGL-Zeichnung korrekt angezeigt wird, auch wenn ich das Fenster mehrmals schließe und öffne. Also alles ok.

3. Gehe ich dann wieder zurück ins Hauptfenster und zeige das o.g. TFrame-Objekt an, bleibt es leer. Hmmm

Liegt es an TFrame oder an den dort lokal und nicht global definierten OpenGL-Variablen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenGL in mehreren Fenstern
BeitragVerfasst: Sa Jul 21, 2012 16:50 
Offline
DGL Member

Registriert: Mi Jul 18, 2012 17:36
Beiträge: 4
Programmiersprache: Delphi
Jetzt hab ich's. Habe wglMakeCurrent jetzt auch beim Freigeben des Fensters aufgerufen, also direkt vor
DeactivateRenderingContext;
DestroyRenderingContext(RC);
ReleaseDC(Handle, DC);

Vielen Dank


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenGL in mehreren Fenstern
BeitragVerfasst: Sa Jul 21, 2012 16:56 
Offline
DGL Member

Registriert: Mo Nov 09, 2009 12:01
Beiträge: 200
Genau :D


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 11 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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.016s | 17 Queries | GZIP : On ]