wglMakeCurrent 函数 (wingdi.h)

wglMakeCurrent 函数使指定的 OpenGL 呈现上下文成为调用线程的当前呈现上下文。 线程进行的所有后续 OpenGL 调用均在 hdc 标识的设备上绘制。 还可以使用 wglMakeCurrent 更改调用线程的当前呈现上下文,使其不再是最新的。

语法

BOOL wglMakeCurrent(
  HDC   unnamedParam1,
  HGLRC unnamedParam2
);

参数

unnamedParam1

设备上下文的句柄。 调用线程进行的后续 OpenGL 调用在 hdc 标识的设备上绘制。

unnamedParam2

函数将 OpenGL 呈现上下文设置为调用线程的呈现上下文的句柄。

如果 hglrcNULL,则该函数使调用线程的当前呈现上下文不再为最新,并释放呈现上下文所使用的设备上下文。 在这种情况下,将忽略 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
Library Opengl32.lib
DLL Opengl32.dll

另请参阅

Windows 上的 OpenGL

WGL 函数

wglCreateContext

wglDeleteContext

wglGetCurrentContext

wglGetCurrentDC