From 9f00e14ca629251c199adb33e7c58b1893805d7a Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Tue, 3 Jul 2018 12:42:17 +0200 Subject: [PATCH] [dxgi] Add method to query the family of a given format --- src/dxgi/dxgi_adapter.cpp | 7 +++++++ src/dxgi/dxgi_adapter.h | 4 ++++ src/dxgi/dxgi_interfaces.h | 17 ++++++++++++++--- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/dxgi/dxgi_adapter.cpp b/src/dxgi/dxgi_adapter.cpp index 8c43a2bf6..24e4a18f7 100644 --- a/src/dxgi/dxgi_adapter.cpp +++ b/src/dxgi/dxgi_adapter.cpp @@ -229,6 +229,13 @@ namespace dxvk { } + DXGI_VK_FORMAT_FAMILY STDMETHODCALLTYPE DxgiAdapter::LookupFormatFamily( + DXGI_FORMAT Format, + DXGI_VK_FORMAT_MODE Mode) { + return m_formats.GetFormatFamily(Format, Mode); + } + + HRESULT DxgiAdapter::GetOutputFromMonitor( HMONITOR Monitor, IDXGIOutput** ppOutput) { diff --git a/src/dxgi/dxgi_adapter.h b/src/dxgi/dxgi_adapter.h index 02014fb09..674a502f4 100644 --- a/src/dxgi/dxgi_adapter.h +++ b/src/dxgi/dxgi_adapter.h @@ -57,6 +57,10 @@ namespace dxvk { DXGI_FORMAT Format, DXGI_VK_FORMAT_MODE Mode) final; + DXGI_VK_FORMAT_FAMILY STDMETHODCALLTYPE LookupFormatFamily( + DXGI_FORMAT Format, + DXGI_VK_FORMAT_MODE Mode) final; + HRESULT GetOutputFromMonitor( HMONITOR Monitor, IDXGIOutput** ppOutput); diff --git a/src/dxgi/dxgi_interfaces.h b/src/dxgi/dxgi_interfaces.h index d46f98d94..ca354c028 100644 --- a/src/dxgi/dxgi_interfaces.h +++ b/src/dxgi/dxgi_interfaces.h @@ -67,11 +67,22 @@ IDXGIVkAdapter : public IDXGIAdapter2 { * formats, this is not guaranteed. * \param [in] format The DXGI format * \param [in] mode Format lookup mode - * \returns Vulkan format pair + * \returns Vulkan format mapping */ virtual dxvk::DXGI_VK_FORMAT_INFO STDMETHODCALLTYPE LookupFormat( - DXGI_FORMAT format, - dxvk::DXGI_VK_FORMAT_MODE mode) = 0; + DXGI_FORMAT Format, + dxvk::DXGI_VK_FORMAT_MODE Mode) = 0; + + /** + * \brief Queries the compatibility family of a given format + * + * \param [in] Format The DXGI format + * \param [in] Mode Format lookup mode + * \returns Format family + */ + virtual dxvk::DXGI_VK_FORMAT_FAMILY STDMETHODCALLTYPE LookupFormatFamily( + DXGI_FORMAT Format, + dxvk::DXGI_VK_FORMAT_MODE Mode) = 0; };