wglMakeCurrent-Funktion (wingdi.h)
Die wglMakeCurrent-Funktion macht einen angegebenen OpenGL-Renderingkontext zum aktuellen Renderingkontext des aufrufenden Threads. Alle nachfolgenden OpenGL-Aufrufe des Threads werden auf dem von hdc identifizierten Gerät gezeichnet. Sie können auch wglMakeCurrent verwenden, um den aktuellen Renderingkontext des aufrufenden Threads so zu ändern, dass er nicht mehr aktuell ist.
Syntax
BOOL wglMakeCurrent(
HDC unnamedParam1,
HGLRC unnamedParam2
);
Parameter
unnamedParam1
Handle für einen Gerätekontext. Nachfolgende OpenGL-Aufrufe des aufrufenden Threads werden auf dem von hdc identifizierten Gerät gezeichnet.
unnamedParam2
Behandeln Sie einen OpenGL-Renderingkontext, den die Funktion als Renderingkontext des aufrufenden Threads festlegt.
Wenn hglrcNULL ist, stellt die Funktion den aktuellen Renderingkontext des aufrufenden Threads nicht mehr aktuell und gibt den Gerätekontext frei, der vom Renderingkontext verwendet wird. In diesem Fall wird hdc ignoriert.
Rückgabewert
Wenn die wglMakeCurrent-Funktion erfolgreich ist, ist der Rückgabewert TRUE. andernfalls ist der Rückgabewert FALSE. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Hinweise
Der hdc-Parameter muss auf eine von OpenGL unterstützte Zeichnungsoberfläche verweisen. Es muss nicht derselbe hdc sein, der an wglCreateContext übergeben wurde, als hglrc erstellt wurde, aber es muss sich auf demselben Gerät befinden und das gleiche Pixelformat aufweisen. GDI-Transformation und -Clipping in hdc werden vom Renderingkontext nicht unterstützt. Der aktuelle Renderingkontext verwendet den hdc-Gerätekontext , bis der Renderingkontext nicht mehr aktuell ist.
Vor dem Wechsel zum neuen Renderingkontext löscht OpenGL alle vorherigen Renderingkontexte, die für den aufrufenden Thread aktuell waren.
Ein Thread kann einen aktuellen Renderingkontext aufweisen. Ein Prozess kann mithilfe von Multithreading mehrere Renderingkontexte aufweisen. Ein Thread muss einen aktuellen Renderingkontext festlegen, bevor OpenGL-Funktionen aufgerufen werden. Andernfalls werden alle OpenGL-Aufrufe ignoriert.
Ein Renderingkontext kann jeweils nur für einen Thread aktuell sein. Sie können einen Renderingkontext nicht auf mehrere Threads aktuell machen.
Eine Anwendung kann Multithreadzeichnungen ausführen, indem sie verschiedene Renderingkontexte für verschiedene Threads aktuell macht und jedem Thread einen eigenen Renderingkontext und einen eigenen Gerätekontext zur Verfügung stellt.
Wenn ein Fehler auftritt, stellt die wglMakeCurrent-Funktion den aktuellen Renderingkontext des Threads vor der Rückgabe nicht aktuell.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | wingdi.h |
Bibliothek | Opengl32.lib |
DLL | Opengl32.dll |