wglMakeCurrent: Unterschied zwischen den Versionen
DGLBot (Diskussion | Beiträge) K (WglMakeCurrent wurde nach wglMakeCurrent verschoben) |
K (Ausserdem -> Außerdem) |
||
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
= wglMakeCurrent = | = wglMakeCurrent = | ||
− | + | ||
+ | |||
== Name == | == Name == | ||
'''wglMakeCurrent''' - Setzt den angegebenen OpenGL-Renderkontext als aktuellen Renderkontext des aufrufenden Threads. Alle folgenden, vom Thread aufgerufene OpenGL-Funktionen werden auf den in ''DC'' angegebenen Gerätekontext gezeichnet. '''wglMakeCurrent''' kann auch genutzt werden um den Renderkontext eines Threads zu deaktivieren. | '''wglMakeCurrent''' - Setzt den angegebenen OpenGL-Renderkontext als aktuellen Renderkontext des aufrufenden Threads. Alle folgenden, vom Thread aufgerufene OpenGL-Funktionen werden auf den in ''DC'' angegebenen Gerätekontext gezeichnet. '''wglMakeCurrent''' kann auch genutzt werden um den Renderkontext eines Threads zu deaktivieren. | ||
− | + | ||
+ | |||
== Delphi-Spezifikation == | == Delphi-Spezifikation == | ||
function '''wglMakeCurrent'''(''DC'' : HDC; ''RC'' : HGLRC) : BOOL | function '''wglMakeCurrent'''(''DC'' : HDC; ''RC'' : HGLRC) : BOOL | ||
− | + | ||
+ | |||
== Parameter == | == Parameter == | ||
<table border=1 rules=all> | <table border=1 rules=all> | ||
Zeile 22: | Zeile 25: | ||
</table> | </table> | ||
− | + | ||
+ | |||
== Rückgabewerte == | == Rückgabewerte == | ||
Im '''Erfolgsfalle''' wird '''TRUE''' zurückgeliefert, ansonsten '''FALSE'''. Mittels der Win32-Funktion GetLastError kann man nähere Informationen zum Scheitern der Funktion ermitteln. | Im '''Erfolgsfalle''' wird '''TRUE''' zurückgeliefert, ansonsten '''FALSE'''. Mittels der Win32-Funktion GetLastError kann man nähere Informationen zum Scheitern der Funktion ermitteln. | ||
− | + | ||
+ | |||
== Hinweise == | == Hinweise == | ||
Der Parameter ''DC'' muss auf eine Zeichenfläche verweisen, die durch OpenGL untersützt wird, muss jedoch nicht unbedingt der selbe Gerätekontext sein, der bei der Erstellung via [[wglCreateContext]] übergeben wurde, aber muss auf dem selben Gerät vorliegen und das selbe Pixelformat besitzen. Transformationen und Clipping über die GDI sind werden im Renderkontext nicht unterstützt. Der aktuelle Renderkontext nutzt das in ''DC'' angegebene Gerät solange, bis er deaktiviert wurde. | Der Parameter ''DC'' muss auf eine Zeichenfläche verweisen, die durch OpenGL untersützt wird, muss jedoch nicht unbedingt der selbe Gerätekontext sein, der bei der Erstellung via [[wglCreateContext]] übergeben wurde, aber muss auf dem selben Gerät vorliegen und das selbe Pixelformat besitzen. Transformationen und Clipping über die GDI sind werden im Renderkontext nicht unterstützt. Der aktuelle Renderkontext nutzt das in ''DC'' angegebene Gerät solange, bis er deaktiviert wurde. | ||
Zeile 32: | Zeile 37: | ||
Vor dem Wechsel zu einem neuen Renderkontext "entleert" (flusht) OpenGL alle Renderkontexte die für den aufrufenden Thread aktuell waren. Während ein Thread nur einen aktiven Renderkontext besitzen kann, darf ein Prozess mehrere Renderkontexte (->Multithreading) bestizen. Ein Thread muss einen Renderkontext setzen, bevor er OpenGL-Funktionen aufrufen kann, da diese ansonst ignoriert werden. | Vor dem Wechsel zu einem neuen Renderkontext "entleert" (flusht) OpenGL alle Renderkontexte die für den aufrufenden Thread aktuell waren. Während ein Thread nur einen aktiven Renderkontext besitzen kann, darf ein Prozess mehrere Renderkontexte (->Multithreading) bestizen. Ein Thread muss einen Renderkontext setzen, bevor er OpenGL-Funktionen aufrufen kann, da diese ansonst ignoriert werden. | ||
− | + | Außerdem kann ein Renderkontext gleichzeitig immer nur zu einem Thread gehören, es ist also nicht möglich einen Renderkontext gleichzeitig in mehreren Threads zu nutzen. | |
Rendern über Multithreading kann erreicht werden, indem eine Anwendung verschiedene Renderkontexte für verschiedene Threads aktiviert, wobei jeder Thread einen eigenen Renderkontext und Gerätekontext zugewiesen bekommt. | Rendern über Multithreading kann erreicht werden, indem eine Anwendung verschiedene Renderkontexte für verschiedene Threads aktiviert, wobei jeder Thread einen eigenen Renderkontext und Gerätekontext zugewiesen bekommt. | ||
Zeile 38: | Zeile 43: | ||
Wenn ein Fehler auftritt, dann wird der Renderkontext nicht als aktiv gesetzt, bevor zurückgesprungen wird. | Wenn ein Fehler auftritt, dann wird der Renderkontext nicht als aktiv gesetzt, bevor zurückgesprungen wird. | ||
− | + | ||
+ | |||
== Siehe auch == | == Siehe auch == | ||
[[wglCreateContext]], [[wglDeleteContext]], [[wglGetCurrentContext]], [[wglGetCurrentDC]] | [[wglCreateContext]], [[wglDeleteContext]], [[wglGetCurrentContext]], [[wglGetCurrentDC]] | ||
[[Kategorie:WGL|MakeCurrent]] | [[Kategorie:WGL|MakeCurrent]] |
Aktuelle Version vom 21. März 2012, 15:50 Uhr
Inhaltsverzeichnis
wglMakeCurrent
Name
wglMakeCurrent - Setzt den angegebenen OpenGL-Renderkontext als aktuellen Renderkontext des aufrufenden Threads. Alle folgenden, vom Thread aufgerufene OpenGL-Funktionen werden auf den in DC angegebenen Gerätekontext gezeichnet. wglMakeCurrent kann auch genutzt werden um den Renderkontext eines Threads zu deaktivieren.
Delphi-Spezifikation
function wglMakeCurrent(DC : HDC; RC : HGLRC) : BOOL
Parameter
DC | Handle eines Gerätekontext, auf den alle folgenden OpenGL-Funktionen zeichnen. |
RC | Handle des Renderkontextes, den die Funktion als aktuellen Renderkontext des aufrufenden Threads setzen soll. Wenn dieser Parameter = Null (0) ist, dann wird der Renderkontext des aufrufenden Threads deaktiviert. In diesem Falle wird DC ignoriert. |
Rückgabewerte
Im Erfolgsfalle wird TRUE zurückgeliefert, ansonsten FALSE. Mittels der Win32-Funktion GetLastError kann man nähere Informationen zum Scheitern der Funktion ermitteln.
Hinweise
Der Parameter DC muss auf eine Zeichenfläche verweisen, die durch OpenGL untersützt wird, muss jedoch nicht unbedingt der selbe Gerätekontext sein, der bei der Erstellung via wglCreateContext übergeben wurde, aber muss auf dem selben Gerät vorliegen und das selbe Pixelformat besitzen. Transformationen und Clipping über die GDI sind werden im Renderkontext nicht unterstützt. Der aktuelle Renderkontext nutzt das in DC angegebene Gerät solange, bis er deaktiviert wurde.
Vor dem Wechsel zu einem neuen Renderkontext "entleert" (flusht) OpenGL alle Renderkontexte die für den aufrufenden Thread aktuell waren. Während ein Thread nur einen aktiven Renderkontext besitzen kann, darf ein Prozess mehrere Renderkontexte (->Multithreading) bestizen. Ein Thread muss einen Renderkontext setzen, bevor er OpenGL-Funktionen aufrufen kann, da diese ansonst ignoriert werden.
Außerdem kann ein Renderkontext gleichzeitig immer nur zu einem Thread gehören, es ist also nicht möglich einen Renderkontext gleichzeitig in mehreren Threads zu nutzen.
Rendern über Multithreading kann erreicht werden, indem eine Anwendung verschiedene Renderkontexte für verschiedene Threads aktiviert, wobei jeder Thread einen eigenen Renderkontext und Gerätekontext zugewiesen bekommt.
Wenn ein Fehler auftritt, dann wird der Renderkontext nicht als aktiv gesetzt, bevor zurückgesprungen wird.
Siehe auch
wglCreateContext, wglDeleteContext, wglGetCurrentContext, wglGetCurrentDC