在Windows中,OpenGL命令是通过OpenGL Render Context(以下简称RC)来执行的。这个RC是OpenGL和Windows之间的纽带。
每个RC创建时,必须指定一个DC(Windows Device Context 也就是那个通常用于GDI的设备环境DC)。RC的绘制目标,就是这个DC所对应的窗口。
每次RC创建时,应该设置一下DC的像素格式。
同一个时刻,一个窗口可能对应多个RC,但一个线程只能有一个被激活的RC。
每个RC都有一个对应的DC,该DC不一定必须是当初创建的RC时的DC,但这个DC必须与创建RC时的那个DC,对应于同样的Windows对象,并且像素格式相同。
每个线程有且只能拥有一个RC。
Windows提供了一组用于RC管理的函数:
WGL Function |
Description |
wglCreateContext |
创建一个RC。 |
WglMakeCurrent |
为线程指定当前RC。 |
WglGetCurrentContext |
获取一个线程的当前RC。 |
WglGetCurrentDC |
获取当前线程RC所对应的DC。 |
WglDeleteContext |
删除一个RC。 |
根据以上内容,可以确定使用Windows窗口句柄建立OpenGL环境的步骤如下:
各个过程的示例代码如下:
1、在合适的地方,定义RC和DC句柄;
#include <GL\gl.h> //必要的头文件 |
2、初始化RC的示例代码;
//根据hWnd创建RC |
3、渲染示例代码:
void Render() |
4、退出时的示范代码:
void DeInit(HWND hWnd) |