wglShareLists
Inhaltsverzeichnis
Name
wglShareLists - erlaubt es mehreren OpenGL-Renderkontexten einen gemeinsamen Displaylistenraum zu nutzen.
Delphi-Spezifikation
function wglShareLists(p1,p2 : HGLRC): BOOL;
Parameter
OpenGL Renderkontext(RC) dem Zugriff auf den DL-Raum eines anderen RCs gegeben werden soll. | |
OpenGL Renderkontext dessen DL-Raum von einem anderen RC genutzt werden soll. |
Rückgabewert
War die Funktion erfolgreich wird TRUE zurückgegeben.
Wenn die Funktion fehlschlägt, ist der Rückgabewert FALSE. Die Displaylistenräume bleiben geteilt. Für nähere Informationen zum Grund des Scheiterns, rufen Sie GetLastError auf.
Beschreibung
Wenn man einen OpenGL Rendercontext(RC) erstellt besitzt dieser einen eigenen Displaylistenraum (DL-Raum). Mittels wglShareLists ermöglicht man es einem RC den DL-Raum eines anderen RCs zu benutzen. Es können dabei beliebig viele RC einen DL-Raum benutzen. Wenn man mittels wglShareLists einem RC einen neuen DL-Raum zugänglich macht, benutzt er nur noch diesen, bis man den RC zerstört/freigibt.Wenn der Letzte RC der einen DL-Raum benutzt freigibt, wird auch der DL-Raum freigegeben. Alle Indizes und Definitionen der Displaylisten in einem DL-Raum sind für alle RC, die Zugriff auf diesen haben, zugänglich.
Man kann DL nur von RCs nutzen lassen, die im selben Prozess erstellt wurden.Trotzdem können nicht alle RCs in einem Prozess DL mit anderen teilen/gemeinsam nutzen. RCs können nur dann DL teilen, wenn sie die selbe Implementation der OpenGL-Funktionen nutzen. (Sprich: Es muss der selbe OpenGL Header genutzt werden.) Alle ClientRCs eines bestimmten Pixelformats können immer DL teilen.
Obwohl es meist schlecht dokumentiert ist, ist wglShareLists auch dazu gedacht andere speicherintensive Objekte (wie beispielsweise Texturen) für mehrere RCs zugänglich zu machen.
Hinweise
wglShareLists ist erst ab OpenGL Version 1.01 oder später enthalten. Um die Versionsnummer der OpenGL zu bestimmen rufen Sie glGetString auf.
Fehlermeldungen
Nutzen Sie GetLastError um herauszufinden wieso wglShareLists fehlschlug.