BBS水木清华站∶精华区

发信人: azuer (log), 信区: Graphics 
标  题: OpenGL for Windows 95程序设计------4(转贴) 
发信站: BBS 水木清华站 (Wed Aug 13 22:12:24 1997) 
 
发信人: 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水木清华站∶精华区