Window平台的OpenGL - Wiggle函数

OpenGL是一个单纯的图形API接口,用户的交互和屏幕窗口处理都交给了操作系统去完成。为了和操作系统很好的配合,每一种系统都有自己对OpenGL的扩展,包括一些窗口管理和用户交互的一些函数。有必要提供一些设置缓存、颜色深度和其它一些绘图特征。

对于微软的Windows操作系统,这种紧密的关系包含在新的wiggle函数中,这些函数都以wgl为前缀,其中最常用的几个是:

1 HGLRC wglCreateContext(HDC hdc);
2 BOOL wglDeleteContext(HGLRC hglrc);
3 BOOL wglMakeCurrent(HDC hdc, HGLRC hglrc);
4 HGLRC wglGetCurrentContext();
5 HDC wglGetCurrentDC();

下面对这些Wiggle函数作分别介绍:

 

1、函数wglCreateContext()

该函数输入一个GDI的设备句柄hdc,创建与这个设备相关联的OpenGL上下文。函数的原型如下:

HGLRC wglCreateContext(HDC hdc);

如果创建成功,则返回上下文的句柄,否则返回NULL。

在调用这个函数创建上下文之前,必须先调用函数SetPixelFormat()设置与设备相匹配的像素格式。

 

2、函数wglDeleteContext()

该函数用于删除一个OpenGL的上下文,函数的原型如下:

BOOL wglDeleteContext(HGLRC hglrc);

若删除成功,返回TRUE,否则返回FALSE。

 

3、函数wglMakeCurrent()

该函数将一个设备的OpenGL上下文设置为当前线程的OpenGL上下文,后续所有的OpenGL命令都发往这个上下文处理,并通过该上下文实现窗口场景的绘制。函数原型如下:

BOOL wglMakeCurrent(HDC hdc, HGLRC hglrc);

若成功设置,返回TRUE,否则,返回FALSE。

 

4、函数wglGetCurrentContext()

该函数用于获取线程中当前的OpenGL上下文。函数原型如下:

HGLRC wglGetCurrentContext();

返回当前线程中OpenGL上下文的句柄,若当前线程没有OpenGL上下文,则返回NULL。

 

5、函数wglGetCurrentDC()

该函数用于获取当前OpenGL上下文的设备句柄。函数原型如下:

HDC wglGetCurrentDC();

返回当前OpenGL上下文的设备句柄,若当前线程没有OpenGL上下文,则返回NULL。

 

posted @ 2022-12-17 16:28  禅元天道  阅读(186)  评论(0编辑  收藏  举报