首页 > 解决方案 > Windows 10下如何查询真实显示位深?

问题描述

我正在努力寻找任何能够以每个通道的位数正确识别连接监视器的位深度的 win32 api 调用。随附的屏幕截图显示了可见的设置。

使用 DXGI 可以枚举输出上的所有模式并轻松识别它们的位深度,但是无需调用获取当前模式。

所有当前返回 bitsPerPel 的 win32 调用始终指示 32bpp。

有人知道哪个电话可以获取此数据吗?我可以使用 NvAPI 和 ADL 检测到这一点,但是对于基于英特尔的机器没有解决方案。

我还会对活动信号分辨率与桌面分辨率字段以及如何检索这些字段感兴趣。

1

标签: c++winapidesktopdxgi

解决方案


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

在此处输入图像描述


推荐阅读