1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-03-13 19:29:14 +01:00

[dxgi] Implement IDXGIOutput5

This commit is contained in:
Philip Rebohle 2019-09-20 16:43:01 +02:00
parent 3e8a6ec463
commit 5cb7f26bb7
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
2 changed files with 28 additions and 4 deletions

View File

@ -56,7 +56,8 @@ namespace dxvk {
|| riid == __uuidof(IDXGIOutput1)
|| riid == __uuidof(IDXGIOutput2)
|| riid == __uuidof(IDXGIOutput3)
|| riid == __uuidof(IDXGIOutput4)) {
|| riid == __uuidof(IDXGIOutput4)
|| riid == __uuidof(IDXGIOutput5)) {
*ppvObject = ref(this);
return S_OK;
}
@ -416,12 +417,28 @@ namespace dxvk {
HRESULT STDMETHODCALLTYPE DxgiOutput::DuplicateOutput(
IUnknown* pDevice,
IDXGIOutputDuplication** ppOutputDuplication) {
return DuplicateOutput1(pDevice, 0, 0, nullptr, ppOutputDuplication);
}
HRESULT STDMETHODCALLTYPE DxgiOutput::DuplicateOutput1(
IUnknown* pDevice,
UINT Flags,
UINT SupportedFormatsCount,
const DXGI_FORMAT* pSupportedFormats,
IDXGIOutputDuplication** ppOutputDuplication) {
InitReturnPtr(ppOutputDuplication);
if (!pDevice)
return E_INVALIDARG;
static bool s_errorShown = false;
if (!std::exchange(s_errorShown, true))
Logger::warn("DxgiOutput::DuplicateOutput: Stub");
Logger::err("DxgiOutput::DuplicateOutput1: Not implemented");
return E_NOTIMPL;
// At least return a valid error code
return DXGI_ERROR_UNSUPPORTED;
}

View File

@ -24,7 +24,7 @@ namespace dxvk {
}
class DxgiOutput : public DxgiObject<IDXGIOutput4> {
class DxgiOutput : public DxgiObject<IDXGIOutput5> {
public:
@ -101,6 +101,13 @@ namespace dxvk {
IUnknown* pDevice,
IDXGIOutputDuplication** ppOutputDuplication) final;
HRESULT STDMETHODCALLTYPE DuplicateOutput1(
IUnknown* pDevice,
UINT Flags,
UINT SupportedFormatsCount,
const DXGI_FORMAT* pSupportedFormats,
IDXGIOutputDuplication** ppOutputDuplication) final;
BOOL STDMETHODCALLTYPE SupportsOverlays() final;
HRESULT STDMETHODCALLTYPE CheckOverlaySupport(