c++ - 获取窗口的像素格式
问题描述
我创建了一个在 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
例如位移,掩码等,只需检查它并打印您需要的内容即可。
推荐阅读
- r - 循环遍历数据表列并使用 for 循环应用 glm
- mongodb - 更好的方法创建 estructure 集合 mongodb,更新并插入子文档
- ios - 数据在 CollectionView 单元格中未正确显示?
- c# - Foreach 循环遍历字典导致 StackOverflowException
- python-3.x - 形状力图不显示图:shap.plots._force.AdditiveForceVisualizer
- javafx - 如何在 JavaFX 中绘制等边三角形?
- uipath - UiPath 助理和开发人员认证徽章显示在简历中
- r - 按组有效地重复观察
- c++ - 将浮点数组传递给构造函数
- python - 如何通过python将列表数据添加到CSV文件的第一列,该文件有256列文件?