1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2024-12-01 16:24:12 +01:00

[d3d11] Add ID3D11VideoProcessorEnumerator stub

This commit is contained in:
Philip Rebohle 2021-05-04 16:50:23 +02:00
parent 1eaf2545c3
commit bdb7eef874
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
4 changed files with 141 additions and 2 deletions

View File

@ -21,6 +21,7 @@
#include "d3d11_state_object.h"
#include "d3d11_swapchain.h"
#include "d3d11_texture.h"
#include "d3d11_video.h"
namespace dxvk {
@ -2490,8 +2491,13 @@ namespace dxvk {
HRESULT STDMETHODCALLTYPE D3D11VideoDevice::CreateVideoProcessorEnumerator(
const D3D11_VIDEO_PROCESSOR_CONTENT_DESC* pDesc,
ID3D11VideoProcessorEnumerator** ppEnum) {
Logger::err("D3D11VideoDevice::CreateVideoProcessorEnumerator: Stub");
return E_NOTIMPL;
try {
*ppEnum = ref(new D3D11VideoProcessorEnumerator(m_device, *pDesc));
return S_OK;
} catch (const DxvkError& e) {
Logger::err(e.message());
return E_FAIL;
}
}

82
src/d3d11/d3d11_video.cpp Normal file
View File

@ -0,0 +1,82 @@
#include "d3d11_context.h"
#include "d3d11_video.h"
namespace dxvk {
D3D11VideoProcessorEnumerator::D3D11VideoProcessorEnumerator(
D3D11Device* pDevice,
const D3D11_VIDEO_PROCESSOR_CONTENT_DESC& Desc)
: D3D11DeviceChild<ID3D11VideoProcessorEnumerator>(pDevice),
m_desc(Desc) {
}
D3D11VideoProcessorEnumerator::~D3D11VideoProcessorEnumerator() {
}
HRESULT STDMETHODCALLTYPE D3D11VideoProcessorEnumerator::QueryInterface(
REFIID riid,
void** ppvObject) {
if (riid == __uuidof(IUnknown)
|| riid == __uuidof(ID3D11DeviceChild)
|| riid == __uuidof(ID3D11VideoProcessorEnumerator)) {
*ppvObject = ref(this);
return S_OK;
}
Logger::warn("D3D11VideoProcessorEnumerator::QueryInterface: Unknown interface query");
Logger::warn(str::format(riid));
return E_NOINTERFACE;
}
HRESULT STDMETHODCALLTYPE D3D11VideoProcessorEnumerator::GetVideoProcessorContentDesc(
D3D11_VIDEO_PROCESSOR_CONTENT_DESC* pContentDesc) {
*pContentDesc = m_desc;
return S_OK;
}
HRESULT STDMETHODCALLTYPE D3D11VideoProcessorEnumerator::CheckVideoProcessorFormat(
DXGI_FORMAT Format,
UINT* pFlags) {
Logger::err("D3D11VideoProcessorEnumerator::CheckVideoProcessorFormat: Stub");
return E_NOTIMPL;
}
HRESULT STDMETHODCALLTYPE D3D11VideoProcessorEnumerator::GetVideoProcessorCaps(
D3D11_VIDEO_PROCESSOR_CAPS* pCaps) {
Logger::err("D3D11VideoProcessorEnumerator::GetVideoProcessorCaps: Stub");
return E_NOTIMPL;
}
HRESULT STDMETHODCALLTYPE D3D11VideoProcessorEnumerator::GetVideoProcessorRateConversionCaps(
UINT TypeIndex,
D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS* pCaps) {
Logger::err("D3D11VideoProcessorEnumerator::GetVideoProcessorRateConversionCaps: Stub");
return E_NOTIMPL;
}
HRESULT STDMETHODCALLTYPE D3D11VideoProcessorEnumerator::GetVideoProcessorCustomRate(
UINT TypeIndex,
UINT CustomRateIndex,
D3D11_VIDEO_PROCESSOR_CUSTOM_RATE* pRate) {
Logger::err("D3D11VideoProcessorEnumerator::GetVideoProcessorCustomRate: Stub");
return E_NOTIMPL;
}
HRESULT STDMETHODCALLTYPE D3D11VideoProcessorEnumerator::GetVideoProcessorFilterRange(
D3D11_VIDEO_PROCESSOR_FILTER Filter,
D3D11_VIDEO_PROCESSOR_FILTER_RANGE* pRange) {
Logger::err("D3D11VideoProcessorEnumerator::GetVideoProcessorFilterRange: Stub");
return E_NOTIMPL;
}
}

50
src/d3d11/d3d11_video.h Normal file
View File

@ -0,0 +1,50 @@
#pragma once
#include "d3d11_device.h"
namespace dxvk {
class D3D11VideoProcessorEnumerator : public D3D11DeviceChild<ID3D11VideoProcessorEnumerator> {
public:
D3D11VideoProcessorEnumerator(
D3D11Device* pDevice,
const D3D11_VIDEO_PROCESSOR_CONTENT_DESC& Desc);
~D3D11VideoProcessorEnumerator();
HRESULT STDMETHODCALLTYPE QueryInterface(
REFIID riid,
void** ppvObject);
HRESULT STDMETHODCALLTYPE GetVideoProcessorContentDesc(
D3D11_VIDEO_PROCESSOR_CONTENT_DESC* pContentDesc);
HRESULT STDMETHODCALLTYPE CheckVideoProcessorFormat(
DXGI_FORMAT Format,
UINT* pFlags);
HRESULT STDMETHODCALLTYPE GetVideoProcessorCaps(
D3D11_VIDEO_PROCESSOR_CAPS* pCaps);
HRESULT STDMETHODCALLTYPE GetVideoProcessorRateConversionCaps(
UINT TypeIndex,
D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS* pCaps);
HRESULT STDMETHODCALLTYPE GetVideoProcessorCustomRate(
UINT TypeIndex,
UINT CustomRateIndex,
D3D11_VIDEO_PROCESSOR_CUSTOM_RATE* pRate);
HRESULT STDMETHODCALLTYPE GetVideoProcessorFilterRange(
D3D11_VIDEO_PROCESSOR_FILTER Filter,
D3D11_VIDEO_PROCESSOR_FILTER_RANGE* pRange);
private:
D3D11_VIDEO_PROCESSOR_CONTENT_DESC m_desc;
};
}

View File

@ -52,6 +52,7 @@ d3d11_src = [
'd3d11_swapchain.cpp',
'd3d11_texture.cpp',
'd3d11_util.cpp',
'd3d11_video.cpp',
'd3d11_view_dsv.cpp',
'd3d11_view_rtv.cpp',
'd3d11_view_srv.cpp',