1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2024-12-14 00:48:44 +01:00
dxvk/src/d3d11/d3d11_context.h

599 lines
26 KiB
C
Raw Normal View History

2017-10-11 09:51:48 +02:00
#pragma once
#include "../dxvk/dxvk_adapter.h"
#include "../dxvk/dxvk_device.h"
#include "d3d11_context_state.h"
2017-10-11 09:51:48 +02:00
#include "d3d11_device_child.h"
2017-12-04 13:39:37 +01:00
#include "d3d11_view.h"
2017-10-11 09:51:48 +02:00
namespace dxvk {
class D3D11Device;
class D3D11DeviceContext : public D3D11DeviceChild<ID3D11DeviceContext> {
public:
D3D11DeviceContext(
D3D11Device* parent,
Rc<DxvkDevice> device);
2017-10-11 09:51:48 +02:00
~D3D11DeviceContext();
2017-12-12 12:50:52 +01:00
ULONG STDMETHODCALLTYPE AddRef() final;
2017-12-12 12:50:52 +01:00
ULONG STDMETHODCALLTYPE Release() final;
2017-12-12 12:50:52 +01:00
HRESULT STDMETHODCALLTYPE QueryInterface(
2017-10-11 09:51:48 +02:00
REFIID riid,
void** ppvObject) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE GetDevice(ID3D11Device **ppDevice) final;
2017-10-11 09:51:48 +02:00
2017-12-12 12:50:52 +01:00
D3D11_DEVICE_CONTEXT_TYPE STDMETHODCALLTYPE GetType() final;
2017-10-11 09:51:48 +02:00
2017-12-12 12:50:52 +01:00
UINT STDMETHODCALLTYPE GetContextFlags() final;
2017-10-11 09:51:48 +02:00
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE ClearState() final;
2017-10-11 09:51:48 +02:00
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE Flush() final;
2017-10-11 09:51:48 +02:00
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE ExecuteCommandList(
2017-10-11 09:51:48 +02:00
ID3D11CommandList* pCommandList,
WINBOOL RestoreContextState) final;
2017-12-12 12:50:52 +01:00
HRESULT STDMETHODCALLTYPE FinishCommandList(
2017-10-11 09:51:48 +02:00
WINBOOL RestoreDeferredContextState,
ID3D11CommandList **ppCommandList) final;
2017-12-12 12:50:52 +01:00
HRESULT STDMETHODCALLTYPE Map(
2017-10-11 09:51:48 +02:00
ID3D11Resource* pResource,
UINT Subresource,
D3D11_MAP MapType,
UINT MapFlags,
D3D11_MAPPED_SUBRESOURCE* pMappedResource) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE Unmap(
2017-10-11 09:51:48 +02:00
ID3D11Resource* pResource,
UINT Subresource) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE Begin(ID3D11Asynchronous *pAsync) final;
2017-10-11 09:51:48 +02:00
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE End(ID3D11Asynchronous *pAsync) final;
2017-10-11 09:51:48 +02:00
2017-12-12 12:50:52 +01:00
HRESULT STDMETHODCALLTYPE GetData(
2017-10-11 09:51:48 +02:00
ID3D11Asynchronous* pAsync,
void* pData,
UINT DataSize,
UINT GetDataFlags) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE SetPredication(
2017-10-11 09:51:48 +02:00
ID3D11Predicate* pPredicate,
WINBOOL PredicateValue) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE GetPredication(
2017-10-11 09:51:48 +02:00
ID3D11Predicate** ppPredicate,
WINBOOL* pPredicateValue) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE CopySubresourceRegion(
2017-10-11 09:51:48 +02:00
ID3D11Resource* pDstResource,
UINT DstSubresource,
UINT DstX,
UINT DstY,
UINT DstZ,
ID3D11Resource* pSrcResource,
UINT SrcSubresource,
const D3D11_BOX* pSrcBox) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE CopyResource(
2017-10-11 09:51:48 +02:00
ID3D11Resource* pDstResource,
ID3D11Resource* pSrcResource) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE CopyStructureCount(
2017-10-11 09:51:48 +02:00
ID3D11Buffer* pDstBuffer,
UINT DstAlignedByteOffset,
ID3D11UnorderedAccessView* pSrcView) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE ClearRenderTargetView(
2017-10-11 09:51:48 +02:00
ID3D11RenderTargetView* pRenderTargetView,
const FLOAT ColorRGBA[4]) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE ClearUnorderedAccessViewUint(
2017-10-11 09:51:48 +02:00
ID3D11UnorderedAccessView* pUnorderedAccessView,
const UINT Values[4]) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE ClearUnorderedAccessViewFloat(
2017-10-11 09:51:48 +02:00
ID3D11UnorderedAccessView* pUnorderedAccessView,
const FLOAT Values[4]) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE ClearDepthStencilView(
2017-10-11 09:51:48 +02:00
ID3D11DepthStencilView* pDepthStencilView,
UINT ClearFlags,
FLOAT Depth,
UINT8 Stencil) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE GenerateMips(
2017-10-11 09:51:48 +02:00
ID3D11ShaderResourceView* pShaderResourceView) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE UpdateSubresource(
2017-10-11 09:51:48 +02:00
ID3D11Resource* pDstResource,
UINT DstSubresource,
const D3D11_BOX* pDstBox,
const void* pSrcData,
UINT SrcRowPitch,
UINT SrcDepthPitch) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE SetResourceMinLOD(
2017-10-11 09:51:48 +02:00
ID3D11Resource* pResource,
FLOAT MinLOD) final;
2017-12-12 12:50:52 +01:00
FLOAT STDMETHODCALLTYPE GetResourceMinLOD(
2017-10-11 09:51:48 +02:00
ID3D11Resource* pResource) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE ResolveSubresource(
2017-10-11 09:51:48 +02:00
ID3D11Resource* pDstResource,
UINT DstSubresource,
ID3D11Resource* pSrcResource,
UINT SrcSubresource,
DXGI_FORMAT Format) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE DrawAuto() final;
2017-10-11 09:51:48 +02:00
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE Draw(
2017-10-11 09:51:48 +02:00
UINT VertexCount,
UINT StartVertexLocation) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE DrawIndexed(
2017-10-11 09:51:48 +02:00
UINT IndexCount,
UINT StartIndexLocation,
INT BaseVertexLocation) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE DrawInstanced(
2017-10-11 09:51:48 +02:00
UINT VertexCountPerInstance,
UINT InstanceCount,
UINT StartVertexLocation,
UINT StartInstanceLocation) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE DrawIndexedInstanced(
2017-10-11 09:51:48 +02:00
UINT IndexCountPerInstance,
UINT InstanceCount,
UINT StartIndexLocation,
INT BaseVertexLocation,
UINT StartInstanceLocation) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE DrawIndexedInstancedIndirect(
2017-10-11 09:51:48 +02:00
ID3D11Buffer* pBufferForArgs,
UINT AlignedByteOffsetForArgs) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE DrawInstancedIndirect(
2017-10-11 09:51:48 +02:00
ID3D11Buffer* pBufferForArgs,
UINT AlignedByteOffsetForArgs) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE Dispatch(
2017-10-11 09:51:48 +02:00
UINT ThreadGroupCountX,
UINT ThreadGroupCountY,
UINT ThreadGroupCountZ) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE DispatchIndirect(
2017-10-11 09:51:48 +02:00
ID3D11Buffer* pBufferForArgs,
UINT AlignedByteOffsetForArgs) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE IASetInputLayout(
2017-10-11 09:51:48 +02:00
ID3D11InputLayout* pInputLayout) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE IASetPrimitiveTopology(
2017-10-11 09:51:48 +02:00
D3D11_PRIMITIVE_TOPOLOGY Topology) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE IASetVertexBuffers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumBuffers,
ID3D11Buffer* const* ppVertexBuffers,
const UINT* pStrides,
const UINT* pOffsets) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE IASetIndexBuffer(
2017-10-11 09:51:48 +02:00
ID3D11Buffer* pIndexBuffer,
DXGI_FORMAT Format,
UINT Offset) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE IAGetInputLayout(
2017-10-11 09:51:48 +02:00
ID3D11InputLayout** ppInputLayout) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE IAGetPrimitiveTopology(
2017-10-11 09:51:48 +02:00
D3D11_PRIMITIVE_TOPOLOGY* pTopology) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE IAGetVertexBuffers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumBuffers,
ID3D11Buffer** ppVertexBuffers,
UINT* pStrides,
UINT* pOffsets) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE IAGetIndexBuffer(
2017-10-11 09:51:48 +02:00
ID3D11Buffer** pIndexBuffer,
DXGI_FORMAT* Format,
UINT* Offset) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE VSSetShader(
2017-10-11 09:51:48 +02:00
ID3D11VertexShader* pVertexShader,
ID3D11ClassInstance* const* ppClassInstances,
UINT NumClassInstances) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE VSSetConstantBuffers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumBuffers,
ID3D11Buffer* const* ppConstantBuffers) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE VSSetShaderResources(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumViews,
ID3D11ShaderResourceView* const* ppShaderResourceViews) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE VSSetSamplers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumSamplers,
ID3D11SamplerState* const* ppSamplers) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE VSGetShader(
2017-10-11 09:51:48 +02:00
ID3D11VertexShader** ppVertexShader,
ID3D11ClassInstance** ppClassInstances,
UINT* pNumClassInstances) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE VSGetConstantBuffers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumBuffers,
ID3D11Buffer** ppConstantBuffers) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE VSGetShaderResources(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumViews,
ID3D11ShaderResourceView** ppShaderResourceViews) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE VSGetSamplers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumSamplers,
ID3D11SamplerState** ppSamplers) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE HSSetShader(
2017-10-11 09:51:48 +02:00
ID3D11HullShader* pHullShader,
ID3D11ClassInstance* const* ppClassInstances,
UINT NumClassInstances) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE HSSetShaderResources(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumViews,
ID3D11ShaderResourceView* const* ppShaderResourceViews) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE HSSetConstantBuffers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumBuffers,
ID3D11Buffer* const* ppConstantBuffers) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE HSSetSamplers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumSamplers,
ID3D11SamplerState* const* ppSamplers) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE HSGetShader(
2017-10-11 09:51:48 +02:00
ID3D11HullShader** ppHullShader,
ID3D11ClassInstance** ppClassInstances,
UINT* pNumClassInstances) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE HSGetConstantBuffers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumBuffers,
ID3D11Buffer** ppConstantBuffers) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE HSGetShaderResources(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumViews,
ID3D11ShaderResourceView** ppShaderResourceViews) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE HSGetSamplers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumSamplers,
ID3D11SamplerState** ppSamplers) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE DSSetShader(
2017-10-11 09:51:48 +02:00
ID3D11DomainShader* pDomainShader,
ID3D11ClassInstance* const* ppClassInstances,
UINT NumClassInstances) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE DSSetShaderResources(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumViews,
ID3D11ShaderResourceView* const* ppShaderResourceViews) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE DSSetConstantBuffers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumBuffers,
ID3D11Buffer* const* ppConstantBuffers) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE DSSetSamplers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumSamplers,
ID3D11SamplerState* const* ppSamplers) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE DSGetShader(
2017-10-11 09:51:48 +02:00
ID3D11DomainShader** ppDomainShader,
ID3D11ClassInstance** ppClassInstances,
UINT* pNumClassInstances) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE DSGetConstantBuffers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumBuffers,
ID3D11Buffer** ppConstantBuffers) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE DSGetShaderResources(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumViews,
ID3D11ShaderResourceView** ppShaderResourceViews) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE DSGetSamplers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumSamplers,
ID3D11SamplerState** ppSamplers) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE GSSetShader(
2017-10-11 09:51:48 +02:00
ID3D11GeometryShader* pShader,
ID3D11ClassInstance* const* ppClassInstances,
UINT NumClassInstances) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE GSSetConstantBuffers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumBuffers,
ID3D11Buffer* const* ppConstantBuffers) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE GSSetShaderResources(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumViews,
ID3D11ShaderResourceView* const* ppShaderResourceViews) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE GSSetSamplers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumSamplers,
ID3D11SamplerState* const* ppSamplers) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE GSGetShader(
2017-10-11 09:51:48 +02:00
ID3D11GeometryShader** ppGeometryShader,
ID3D11ClassInstance** ppClassInstances,
UINT* pNumClassInstances) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE GSGetConstantBuffers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumBuffers,
ID3D11Buffer** ppConstantBuffers) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE GSGetShaderResources(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumViews,
ID3D11ShaderResourceView** ppShaderResourceViews) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE GSGetSamplers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumSamplers,
ID3D11SamplerState** ppSamplers) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE PSSetShader(
2017-10-11 09:51:48 +02:00
ID3D11PixelShader* pPixelShader,
ID3D11ClassInstance* const* ppClassInstances,
UINT NumClassInstances) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE PSSetConstantBuffers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumBuffers,
ID3D11Buffer* const* ppConstantBuffers) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE PSSetShaderResources(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumViews,
ID3D11ShaderResourceView* const* ppShaderResourceViews) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE PSSetSamplers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumSamplers,
ID3D11SamplerState* const* ppSamplers) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE PSGetShader(
2017-10-11 09:51:48 +02:00
ID3D11PixelShader** ppPixelShader,
ID3D11ClassInstance** ppClassInstances,
UINT* pNumClassInstances) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE PSGetConstantBuffers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumBuffers,
ID3D11Buffer** ppConstantBuffers) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE PSGetShaderResources(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumViews,
ID3D11ShaderResourceView** ppShaderResourceViews) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE PSGetSamplers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumSamplers,
ID3D11SamplerState** ppSamplers) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE CSSetShader(
2017-10-11 09:51:48 +02:00
ID3D11ComputeShader* pComputeShader,
ID3D11ClassInstance* const* ppClassInstances,
UINT NumClassInstances) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE CSSetConstantBuffers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumBuffers,
ID3D11Buffer* const* ppConstantBuffers) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE CSSetShaderResources(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumViews,
ID3D11ShaderResourceView* const* ppShaderResourceViews) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE CSSetSamplers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumSamplers,
ID3D11SamplerState* const* ppSamplers) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE CSSetUnorderedAccessViews(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumUAVs,
ID3D11UnorderedAccessView* const* ppUnorderedAccessViews,
const UINT* pUAVInitialCounts) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE CSGetShader(
2017-10-11 09:51:48 +02:00
ID3D11ComputeShader** ppComputeShader,
ID3D11ClassInstance** ppClassInstances,
UINT* pNumClassInstances) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE CSGetConstantBuffers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumBuffers,
ID3D11Buffer** ppConstantBuffers) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE CSGetShaderResources(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumViews,
ID3D11ShaderResourceView** ppShaderResourceViews) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE CSGetSamplers(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumSamplers,
ID3D11SamplerState** ppSamplers) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE CSGetUnorderedAccessViews(
2017-10-11 09:51:48 +02:00
UINT StartSlot,
UINT NumUAVs,
ID3D11UnorderedAccessView** ppUnorderedAccessViews) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE OMSetRenderTargets(
2017-10-11 09:51:48 +02:00
UINT NumViews,
ID3D11RenderTargetView* const* ppRenderTargetViews,
ID3D11DepthStencilView* pDepthStencilView) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE OMSetRenderTargetsAndUnorderedAccessViews(
2017-10-11 09:51:48 +02:00
UINT NumRTVs,
ID3D11RenderTargetView* const* ppRenderTargetViews,
ID3D11DepthStencilView* pDepthStencilView,
UINT UAVStartSlot,
UINT NumUAVs,
ID3D11UnorderedAccessView* const* ppUnorderedAccessViews,
const UINT* pUAVInitialCounts) final;
2017-10-11 09:51:48 +02:00
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE OMSetBlendState(
2017-10-11 09:51:48 +02:00
ID3D11BlendState* pBlendState,
const FLOAT BlendFactor[4],
UINT SampleMask) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE OMSetDepthStencilState(
2017-10-11 09:51:48 +02:00
ID3D11DepthStencilState* pDepthStencilState,
UINT StencilRef) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE OMGetRenderTargets(
2017-10-11 09:51:48 +02:00
UINT NumViews,
ID3D11RenderTargetView** ppRenderTargetViews,
ID3D11DepthStencilView** ppDepthStencilView) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE OMGetRenderTargetsAndUnorderedAccessViews(
2017-10-11 09:51:48 +02:00
UINT NumRTVs,
ID3D11RenderTargetView** ppRenderTargetViews,
ID3D11DepthStencilView** ppDepthStencilView,
UINT UAVStartSlot,
UINT NumUAVs,
ID3D11UnorderedAccessView** ppUnorderedAccessViews) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE OMGetBlendState(
2017-10-11 09:51:48 +02:00
ID3D11BlendState** ppBlendState,
FLOAT BlendFactor[4],
UINT* pSampleMask) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE OMGetDepthStencilState(
2017-10-11 09:51:48 +02:00
ID3D11DepthStencilState** ppDepthStencilState,
UINT* pStencilRef) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE RSSetState(
2017-10-11 09:51:48 +02:00
ID3D11RasterizerState* pRasterizerState) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE RSSetViewports(
2017-10-11 09:51:48 +02:00
UINT NumViewports,
const D3D11_VIEWPORT* pViewports) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE RSSetScissorRects(
2017-10-11 09:51:48 +02:00
UINT NumRects,
const D3D11_RECT* pRects) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE RSGetState(
2017-10-11 09:51:48 +02:00
ID3D11RasterizerState** ppRasterizerState) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE RSGetViewports(
2017-10-11 09:51:48 +02:00
UINT* pNumViewports,
D3D11_VIEWPORT* pViewports) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE RSGetScissorRects(
2017-10-11 09:51:48 +02:00
UINT* pNumRects,
D3D11_RECT* pRects) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE SOSetTargets(
2017-10-11 09:51:48 +02:00
UINT NumBuffers,
ID3D11Buffer* const* ppSOTargets,
const UINT* pOffsets) final;
2017-12-12 12:50:52 +01:00
void STDMETHODCALLTYPE SOGetTargets(
2017-10-11 09:51:48 +02:00
UINT NumBuffers,
ID3D11Buffer** ppSOTargets) final;
void Synchronize();
Rc<DxvkContext> GetDXVKContext() const {
return m_context;
}
2017-10-11 09:51:48 +02:00
private:
2017-12-15 19:11:10 +01:00
D3D11Device* const m_parent;
const D3D11_DEVICE_CONTEXT_TYPE m_type = D3D11_DEVICE_CONTEXT_IMMEDIATE;
const UINT m_flags = 0;
Rc<DxvkDevice> m_device;
Rc<DxvkContext> m_context;
Com<D3D11BlendState> m_defaultBlendState;
Com<D3D11DepthStencilState> m_defaultDepthStencilState;
Com<D3D11RasterizerState> m_defaultRasterizerState;
2017-12-15 19:11:10 +01:00
D3D11ContextState m_state;
void BindConstantBuffers(
DxbcProgramType ShaderStage,
D3D11ConstantBufferBindings& Bindings,
UINT StartSlot,
UINT NumBuffers,
ID3D11Buffer* const* ppConstantBuffers);
2017-12-09 21:17:26 +01:00
void BindSamplers(
DxbcProgramType ShaderStage,
D3D11SamplerBindings& Bindings,
2017-12-09 21:17:26 +01:00
UINT StartSlot,
UINT NumSamplers,
ID3D11SamplerState* const* ppSamplers);
void BindShaderResources(
DxbcProgramType ShaderStage,
D3D11ShaderResourceBindings& Bindings,
UINT StartSlot,
UINT NumResources,
ID3D11ShaderResourceView* const* ppResources);
void BindUnorderedAccessViews(
DxbcProgramType ShaderStage,
D3D11UnorderedAccessBindings& Bindings,
UINT StartSlot,
UINT NumUAVs,
ID3D11UnorderedAccessView* const* ppUnorderedAccessViews);
void ApplyViewportState();
2017-10-11 09:51:48 +02:00
};
}