wglMakeCurrent 函式 (wingdi.h)
wglMakeCurrent函式會讓指定的 OpenGL 轉譯內容成為呼叫執行緒的目前轉譯內容。 執行緒所進行的所有後續 OpenGL 呼叫都會繪製在 hdc所識別的裝置上。 您也可以使用 wglMakeCurrent 來變更呼叫執行緒目前的轉譯內容,使其不再為最新狀態。
語法
BOOL wglMakeCurrent(
HDC unnamedParam1,
HGLRC unnamedParam2
);
參數
unnamedParam1
裝置內容的控制代碼。 呼叫執行緒所進行的後續 OpenGL 呼叫會在 hdc所識別的裝置上繪製。
unnamedParam2
函式設定為呼叫執行緒轉譯內容的 OpenGL 轉譯內容控制碼。
如果 hglrc 為 Null,函式會讓呼叫執行緒的目前轉譯內容不再目前,並釋放轉譯內容所使用的裝置內容。 在此情況下,會忽略 hdc 。
傳回值
當 wglMakeCurrent 函式成功時,傳回值為 TRUE;否則傳回值為 FALSE。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
備註
hdc參數必須參考 OpenGL 支援的繪圖介面。 建立hglrc時,它不需要傳遞至wglCreateCoNtext的相同 hdc,但它必須位於相同的裝置上,而且具有相同的像素格式。 轉譯內容不支援 HDC 中的 GDI 轉換和裁剪。 目前的轉譯內容會使用 hdc 裝置內容,直到轉譯內容不再為最新狀態為止。
切換至新的轉譯內容之前,OpenGL 會排清目前至呼叫執行緒的任何先前轉譯內容。
執行緒可以有一個目前的轉譯內容。 進程可以透過多執行緒來有多個轉譯內容。 執行緒必須先設定目前的轉譯內容,才能呼叫任何 OpenGL 函式。 否則,會忽略所有 OpenGL 呼叫。
轉譯內容一次只能是一個執行緒。 您無法讓轉譯內容成為多個執行緒的目前狀態。
應用程式可以執行多執行緒繪製,方法是讓不同的轉譯內容目前提供給不同的執行緒,並為每個執行緒提供自己的轉譯內容和裝置內容。
如果發生錯誤, wglMakeCurrent 函式會在傳回之前,讓執行緒目前的轉譯內容不是最新的。
規格需求
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | wingdi.h |
程式庫 | Opengl32.lib |
Dll | Opengl32.dll |