OpenGL是一种基于客户/服务器和管道(PipeLine)的图形库。即一个应用程序(客户)将各种命令和数据写入管道,这命令和数据将被暂时保存起来,图形库(服务器)直到收到一条专门的指令才会开始处理它们,并将处理结果通过管道传给用户。

所以OpenGL应用程序的基本结构就是:



建立管道

根据需要向管道中写入数据和指令

关闭管道

在Windows95/NT环境中,这个管道就是OpenGL着色环境——(OpenGL Render Context)简称RC。因此建立管道实际上就是获取一个可用的RC。



而在Windows的GDI系统中进行图形显示是通过图形设备上下文——(Device Context)简称DC——进行的。所以获取RC就是:

①先获取一个DC,

②调整这个DC的象素格式(PixelFormat)以便OpenGL库进行绘制,

③用DC去调用wglCreateContext(hDC)建立一个RC,

④调用wglMakeCurrent(hRC,hDC)将刚才建立的RC指定为当前的RC。



当一个RC不再使用时就可以删除它,方法是:

使RC不是“当前RC”:

wglMakeCurrent(hDC,NULL); //不再有当前RC

wglDEleteContent(hRC); //删除之