Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi [OpenGL] Mehrere Render Contexte (https://www.delphipraxis.net/136470-%5Bopengl%5D-mehrere-render-contexte.html)

Meta777 1. Jul 2009 08:35


[OpenGL] Mehrere Render Contexte
 
Huhu,

was muss man beim Erstellen mehrerer Rendering-Contexte beachten? Ich hab hier ne Komponente die mit DelphiGL erstellt wurde. Aber es wird immer nur auf der zulässt erstellten Instanz gerendert??

Bin für jeden Tipp dankbar.

Shalom

Aphton 1. Jul 2009 09:55

Re: [OpenGL] Mehrere Render Contexte
 
Allgemeins hier.

Die (OpenGL-) Szene wird immer auf die (aktuelle) Zeichenfläche gezeichnet. Das RenderingContext beinhaltet nur Infos über die Zeichenfläche. Zeichenflächen können auf DeviceContexts per
Delphi-Quellcode:
wglMakeCurrent( <DeviceContext>, <RenderingContext> );
gestzt werden.

MfG

stimpinski 3. Jul 2009 16:49

Re: [OpenGL] Mehrere Render Contexte
 
Danke für deine Hilfe Aphton.

Wir haben nun eine Lösung für unser Problem gefunden, die genaue Ursache bleibt jedoch unklar. Bisher haben wir die dglsdk von delphigl.com verwendet. Diese stellt mit CreateRenderingContext und ActivateRenderingContext simple Methoden zur schnellen Erstellung eines Rendering Contexts (kurz : RC) bereit. Nach unserer Erfahrung eignen sich diese Methoden jedoch nicht wenn man mit mehreren RCs arbeiten will, deshalb haben wir die Sache selbst in die Hand genommen und direkt auf die entsprechenden wgl-Befehle (ChoosePixelFormat, SetPixelFormat, DescribePixelFormat, wglCreateContext, wglMakeCurrent) umgestellt. Wir benutzen weiterhin die dglsdk, zur Inititialisierung werden weiterhin InitOpenGL und neuerdings ReadExtensions (wieso haben die das in CreateRenderingContext gepackt???) aufgerufen. Für mich war es sehr überraschend, dass man für mehrere Device Contexts (kurz : DC) durchaus einen gemeinsamen RC verwenden kann. Jetzt haben wir unser Projekt entsprechend umgestellt, als positiver Nebeneffekt hat sich ausserdem der Speicherbedarf erheblich verringert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14: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