首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使WGL创建32位深度缓冲区?

如何使WGL创建32位深度缓冲区?
EN

Stack Overflow用户
提问于 2015-02-22 12:57:47
回答 1查看 725关注 0票数 0

如果我将cDepthBits, cStencilBits设置为24, 8,效果很好,但32, 0没有。

代码语言:javascript
复制
PIXELFORMATDESCRIPTOR pfd = {0};
pfd.nSize = sizeof(PIXELFORMATDESCRIPTOR);
pfd.nVersion = 1;
pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
pfd.iPixelType = PFD_TYPE_RGBA;
pfd.cColorBits = 32;
pfd.cDepthBits = 32;
pfd.cStencilBits = 0;
pfd.dwLayerMask = PFD_MAIN_PLANE;

i32 pixelFormatIndex = ChoosePixelFormat(windows.hdc, &pfd);
SetPixelFormat(windows.hdc, pixelFormatIndex, &pfd);
windows.hrc = wglCreateContext(windows.hdc);
wglMakeCurrent(windows.hdc, windows.hrc);

然后我用DescribePixelFormat(windows.hdc, GetPixelFormat(windows.hdc), ..)查询PFD,cDepthBits只有24。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-22 13:11:45

嗯,尚不清楚您的实现是否确实支持默认框架缓冲区的32位深度缓冲区。

但是,使用格式化扩展可以使您更好地控制像素格式。特别是,wglChoosePixelFormatARB()将返回一组像素格式,对查询的属性进行(或多或少严格地)计算。然后,您可以迭代这些数据,并使用wglGetPixelFormatAttribivARB()/wglGetPixelFormatAttribfvARB()查询返回格式的详细属性,并选择您最喜欢的属性--您可以检查其中是否有任何32位深度格式。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28658044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档