1
0
mirror of https://github.com/EduApps-CDG/OpenDX synced 2024-12-30 09:45:37 +01:00
OpenDX/src/d3d11/d3d11_view_uav.cpp
Philip Rebohle 83458c4467
[dxvk] Separated resource view classes
Since we are doing this for UAVs already, we should be
doing this for all view classes in order to account for
the minor differences between all of them.
2018-02-05 22:35:23 +01:00

60 lines
1.9 KiB
C++

#include "d3d11_device.h"
#include "d3d11_view_uav.h"
namespace dxvk {
D3D11UnorderedAccessView::D3D11UnorderedAccessView(
D3D11Device* device,
ID3D11Resource* resource,
const D3D11_UNORDERED_ACCESS_VIEW_DESC& desc,
const Rc<DxvkBufferView>& bufferView,
const DxvkBufferSlice& counterSlice)
: m_device(device), m_resource(resource),
m_desc(desc), m_bufferView(bufferView),
m_counterSlice(counterSlice) { }
D3D11UnorderedAccessView::D3D11UnorderedAccessView(
D3D11Device* device,
ID3D11Resource* resource,
const D3D11_UNORDERED_ACCESS_VIEW_DESC& desc,
const Rc<DxvkImageView>& imageView,
const DxvkBufferSlice& counterSlice)
: m_device(device), m_resource(resource),
m_desc(desc), m_imageView(imageView),
m_counterSlice(counterSlice) { }
D3D11UnorderedAccessView::~D3D11UnorderedAccessView() {
if (m_counterSlice.defined())
m_device->FreeCounterSlice(m_counterSlice);
}
HRESULT STDMETHODCALLTYPE D3D11UnorderedAccessView::QueryInterface(REFIID riid, void** ppvObject) {
COM_QUERY_IFACE(riid, ppvObject, IUnknown);
COM_QUERY_IFACE(riid, ppvObject, ID3D11DeviceChild);
COM_QUERY_IFACE(riid, ppvObject, ID3D11View);
COM_QUERY_IFACE(riid, ppvObject, ID3D11UnorderedAccessView);
Logger::warn("D3D11UnorderedAccessView::QueryInterface: Unknown interface query");
return E_NOINTERFACE;
}
void STDMETHODCALLTYPE D3D11UnorderedAccessView::GetDevice(ID3D11Device** ppDevice) {
*ppDevice = m_device.ref();
}
void STDMETHODCALLTYPE D3D11UnorderedAccessView::GetResource(ID3D11Resource** ppResource) {
*ppResource = m_resource.ref();
}
void STDMETHODCALLTYPE D3D11UnorderedAccessView::GetDesc(D3D11_UNORDERED_ACCESS_VIEW_DESC* pDesc) {
*pDesc = m_desc;
}
}