From a849ffc56c7641b93b5dbd72e94798d5f2ee9654 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Thu, 11 Oct 2018 09:57:56 +0200 Subject: [PATCH] [dxgi] Implement IDXGIOutput3 --- src/dxgi/dxgi_output.cpp | 18 +++++++++++++++++- src/dxgi/dxgi_output.h | 9 ++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/dxgi/dxgi_output.cpp b/src/dxgi/dxgi_output.cpp index 885e5630..430616f5 100644 --- a/src/dxgi/dxgi_output.cpp +++ b/src/dxgi/dxgi_output.cpp @@ -48,7 +48,9 @@ namespace dxvk { if (riid == __uuidof(IUnknown) || riid == __uuidof(IDXGIObject) || riid == __uuidof(IDXGIOutput) - || riid == __uuidof(IDXGIOutput1)) { + || riid == __uuidof(IDXGIOutput1) + || riid == __uuidof(IDXGIOutput2) + || riid == __uuidof(IDXGIOutput3)) { *ppvObject = ref(this); return S_OK; } @@ -428,6 +430,20 @@ namespace dxvk { } + BOOL DxgiOutput::SupportsOverlays() { + return FALSE; + } + + + HRESULT STDMETHODCALLTYPE DxgiOutput::CheckOverlaySupport( + DXGI_FORMAT EnumFormat, + IUnknown* pConcernedDevice, + UINT* pFlags) { + Logger::warn("DxgiOutput: CheckOverlaySupport: Stub"); + return DXGI_ERROR_UNSUPPORTED; + } + + HRESULT DxgiOutput::GetDisplayMode(DXGI_MODE_DESC* pMode, DWORD ModeNum) { ::MONITORINFOEXW monInfo; monInfo.cbSize = sizeof(monInfo); diff --git a/src/dxgi/dxgi_output.h b/src/dxgi/dxgi_output.h index 441adb53..7b189339 100644 --- a/src/dxgi/dxgi_output.h +++ b/src/dxgi/dxgi_output.h @@ -34,7 +34,7 @@ namespace dxvk { }; - class DxgiOutput : public DxgiObject { + class DxgiOutput : public DxgiObject { public: @@ -110,6 +110,13 @@ namespace dxvk { IUnknown* pDevice, IDXGIOutputDuplication** ppOutputDuplication) final; + BOOL STDMETHODCALLTYPE SupportsOverlays() final; + + HRESULT STDMETHODCALLTYPE CheckOverlaySupport( + DXGI_FORMAT EnumFormat, + IUnknown* pConcernedDevice, + UINT* pFlags) final; + HRESULT GetDisplayMode( DXGI_MODE_DESC* pMode, DWORD ModeNum);