Graphics 版 (精华区)

发信人: seaman (翩翩少年), 信区: Graphics
标  题: OpenGL for Windows 95程序设计------4(转贴)
发信站: 哈工大紫丁香 (Tue Sep 28 19:39:14 1999), 转信

发信人: Muler (木日月), 信区: graphics
标  题: OpenGL for Windows 95程序设计------4
发信站: 饮水思源站 (Sat Aug  2 10:38:45 1997) , 转信

4.初始化PIXELFORMATDESCRIPTOR结构
    PIXELFORMATDESCRIPTOR中每个变量值的具体含义和设置可以参考有关
资料,下面举出一个PIXELFORMATDESCRIPTOR初始化例子来简要说明相关变
量的意义。定义PIXELFORMATDESCRIPTOR结构的pfd如下:

PIXELFORMATDESCRIPTOR pfd = {
    sizeof(PIXELFORMATDESCRIPTOR),      //  size of this pfd
    1,
    PFD_DRAW_TO_WINDOW |                                // support window
    PFD_SUPPORT_OPENGL |                                // support OpenGL
    PFD_DOUBLEBUFFER,                                   // double buffered
    PFD_TYPE_RGBA,                                      // RGBA type
    24,                                                 // 24-bit color depth
    0, 0, 0, 0, 0, 0,                                   // color bits ignored
    0,                                                  // no alpha buffer
    0,                                                  // shift bit ignored
    0,                                                  // no accumulation buff
    0, 0, 0, 0,                                         // accum bits ignored
    32,                                                 // 32-bit z-buffer
    0,                                                  // no stencil buffer
    0,                                                  // no auxiliary buffer
    PFD_MAIN_PLANE,                                     // main layer
    0,                                                  // reserved
    0, 0, 0                                             // layer masks ignored
};
在这个结构里,前两个变量的含义十分明显。第三个变量dwFlags的值是
PFD_DRAW_TO_WINDOW |PFD_SUPPORT_OPENGL
|PFD_DOUBLEBUFFER,表明应用程序使用OpenGL函数来绘制窗口,第四个
表明当前采用RGBA颜色模式,第五个采用24位真彩色,既1.67千万种颜色
,如果是256色系统则自动实现颜色抖动;因为没有使用alpha缓存和累计
缓存,所以从变量cAlphaBits到cAccumAlphaBits都设置为0;深度缓存
设置为32位,这个缓存能解决三维场景的消隐问题;变量cAuxBuffers设置
为0,在Windows 95下不支持辅助缓存;Windows 95下针对OpenGL变量
ilayerType只能设置为PFD_MAIN_PLANE,但在其它平台也许支持
PFD_MAIN_PLANE或PFD_MAIN_UNDERLAYPLANE;接下来bReserved变量只能设
为0,而最后三个变量Windows 95都不支持,故全设置为0。

--
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.128.27]

--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: sunsoft.bbs@bbs.net.]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.230毫秒