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.752毫秒