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