c++ - Windows 10下如何查询真实显示位深?
问题描述
我正在努力寻找任何能够以每个通道的位数正确识别连接监视器的位深度的 win32 api 调用。随附的屏幕截图显示了可见的设置。
使用 DXGI 可以枚举输出上的所有模式并轻松识别它们的位深度,但是无需调用获取当前模式。
所有当前返回 bitsPerPel 的 win32 调用始终指示 32bpp。
有人知道哪个电话可以获取此数据吗?我可以使用 NvAPI 和 ADL 检测到这一点,但是对于基于英特尔的机器没有解决方案。
我还会对活动信号分辨率与桌面分辨率字段以及如何检索这些字段感兴趣。
解决方案
DXGI_OUTPUT_DESC1
结构让你:
BitsPerColor
类型:UINT
附加到此输出的显示器的活动线格式的每个颜色通道的位数。
…</p>
DXGI_OUTPUT_DESC1 结构由该
IDXGIOutput6::GetDesc1
方法初始化。
只是你在那里得到什么样的数据的一个例子:
--
适配器:Radeon RX 570 系列
输出:\.\DISPLAY4- 桌面坐标:(0, 0) - (3840, 2160);3840 x 2160
- 附加到桌面:1
- 旋转:DXGI_MODE_ROTATION_IDENTITY
- 监视器:0x000100AF
- 物理显示器:LG ULTRA HD(DisplayPort) (0x00000000)
- 每种颜色的位数:10 <<---------------------------------
- 色彩空间:DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709
- 原色,白点:R { 0.652, 0.335 }, G { 0.305, 0.637 }, B { 0.148, 0.062 };{ 0.313, 0.329 }
- 亮度:最小 0.500,最大 270.000,最大全画幅 270.000
- 硬件组合支持:DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_FULLSCREEN | DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_CURSOR_STRETCHED
推荐阅读
- unicode - 如何从 .txt 文件中删除 <96>
- python - 尝试创建 Discord 欢迎/离开机器人
- mysql - 使用 order by 而不更改组的顺序
- ansible - 为什么 include_role 一次处理一个主机?
- macos - 优化 NSImageView 和 NSView 滚动性能的正确方法是什么
- java - 设置 StringBuilder 对象的最佳方法是什么?
- join - 如何使用 Mongocxx 将集合加入文档
- python - 如何保存最佳验证分数结果,即保存 6 个拆分中的第 5 个拆分
- python - 翻译文本文件中的变量
- mysql - 如何选择带有 X 字符的 MySql 列中的数据?