查询HDR是否在Windows上处于活动状态

时间:2018-11-28 10:20:28

标签: c++ windows winapi msdn

如何以编程方式查询显示设置,以检查Windows上的HDR模式是否处于活动状态。我没有使用EnumDisplaySettings函数检索此信息的方法。 Windows是否提供了另一个API来获取该信息?

2 个答案:

答案 0 :(得分:1)

首先,据我所知,没有用于检查MSDN提供的当前HDR模式的api。

但是我知道nvapi.h中的api用于检查HDR功能并打开/关闭HDR模式。

NVAPI_INTERFACE NvAPI_Disp_GetHdrCapabilities(__in NvU32 displayId,__inout NV_HDR_CAPABILITIES *pHdrCapabilities);

NVAPI_INTERFACE NvAPI_Disp_HdrColorControl(__in NvU32 displayId, __inout NV_HDR_COLOR_DATA *pHdrColorData);

希望这个document可以为您提供帮助! 或者,您也可以转到here获取更多信息。但是,只有“设置”方法

答案 1 :(得分:0)

您可以使用IDXGIOutput6::GetDesc1()

如果为DXGI_OUTPUT_DESC1::DXGI_COLOR_SPACE_TYPE==DXGI_COLOR_SPACE_RGB_FULL_G2048_NONE_P2020,则显示处于HDR模式。

文档: https://docs.microsoft.com/en-us/windows/win32/api/dxgi1_6/ns-dxgi1_6-dxgi_output_desc1

在UWP中,还有AdvancedColorInfo.CurrentAdvancedColorKind()等于AdvancedColorKind.HighDynamicRange

文档:https://docs.microsoft.com/en-us/uwp/api/windows.graphics.display.advancedcolorinfo