gpt4 book ai didi

c++ - 获取窗口的像素格式

转载 作者:可可西里 更新时间:2023-11-01 11:23:45 25 4
gpt4 key购买 nike

我已经创建了一个在 Windows 上运行的 OpenGL 应用程序。有什么方法可以查询有关当前渲染窗口的像素格式的信息吗?(窗口是使用 GLFW 库创建的)

我感兴趣的是:

  • 色位
  • 深度位
  • 像素类型
  • 等等

最佳答案

我是这样做的:

int i;
HDC hdc;
PIXELFORMATDESCRIPTOR pfd;
hdc = GetDC(window_handle); // get device context
i=GetPixelFormat(hdc); // pixel format descriptor index
DescribePixelFormat(hdc,i,sizeof(pfd),&pfd); // format from index

window_handle 是您的应用程序窗口的句柄。如果您可以直接访问 hdc,则可以跳过第一行 GetDC。这是我使用 VCL 和我的 GL 引擎打印信息的方式:

scr.text(AnsiString().sprintf("color: %i bit R%i G%i B%i A%i",pfd.cColorBits,pfd.cRedBits,pfd.cGreenBits,pfd.cBlueBits,pfd.cAlphaBits));
scr.text(AnsiString().sprintf("accum: %i",pfd.cAccumBits));
scr.text(AnsiString().sprintf("depth: %i",pfd.cDepthBits));
scr.text(AnsiString().sprintf("stenc: %i",pfd.cStencilBits));
scr.text(AnsiString().sprintf("auxil: %i",pfd.cAuxBuffers));

因此,只需使用您可以随意使用的内容进行文本打印。 pfd 结构中还有更多内容,例如位移、掩码等,只需检查它并打印您需要的内容即可。

关于c++ - 获取窗口的像素格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50239798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com