diff options
Diffstat (limited to 'src/dxgi/dxgi_factory.h')
-rw-r--r-- | src/dxgi/dxgi_factory.h | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/dxgi/dxgi_factory.h b/src/dxgi/dxgi_factory.h index 81b51143..96a4410c 100644 --- a/src/dxgi/dxgi_factory.h +++ b/src/dxgi/dxgi_factory.h @@ -1,6 +1,7 @@ #pragma once #include <vector> +#include <mutex> #include "dxgi_adapter.h" #include "dxgi_monitor.h" @@ -12,7 +13,13 @@ namespace dxvk { class DxgiFactory; - class DxgiVkFactory : public IDXGIVkInteropFactory { + struct DXVK_VK_GLOBAL_HDR_STATE { + uint32_t Serial; + DXGI_COLOR_SPACE_TYPE ColorSpace; + DXGI_VK_HDR_METADATA Metadata; + }; + + class DxgiVkFactory : public IDXGIVkInteropFactory1 { public: @@ -30,6 +37,14 @@ namespace dxvk { VkInstance* pInstance, PFN_vkGetInstanceProcAddr* ppfnVkGetInstanceProcAddr); + HRESULT STDMETHODCALLTYPE GetGlobalHDRState( + DXGI_COLOR_SPACE_TYPE *pOutColorSpace, + DXGI_HDR_METADATA_HDR10 *pOutMetadata); + + HRESULT STDMETHODCALLTYPE SetGlobalHDRState( + DXGI_COLOR_SPACE_TYPE ColorSpace, + const DXGI_HDR_METADATA_HDR10 *pMetadata); + private: DxgiFactory* m_factory; @@ -173,6 +188,8 @@ namespace dxvk { DxgiMonitorInfo* GetMonitorInfo() { return &m_monitorInfo; } + + DXVK_VK_GLOBAL_HDR_STATE GlobalHDRState(); private: |