2018-01-20 13:22:44 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "d3d11_context.h"
|
|
|
|
|
|
|
|
namespace dxvk {
|
|
|
|
|
|
|
|
class D3D11ImmediateContext : public D3D11DeviceContext {
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
D3D11ImmediateContext(
|
2018-01-23 09:23:31 +01:00
|
|
|
D3D11Device* pParent,
|
|
|
|
Rc<DxvkDevice> Device);
|
2018-01-20 13:22:44 +01:00
|
|
|
~D3D11ImmediateContext();
|
|
|
|
|
|
|
|
ULONG STDMETHODCALLTYPE AddRef() final;
|
|
|
|
|
|
|
|
ULONG STDMETHODCALLTYPE Release() final;
|
|
|
|
|
|
|
|
D3D11_DEVICE_CONTEXT_TYPE STDMETHODCALLTYPE GetType() final;
|
|
|
|
|
|
|
|
UINT STDMETHODCALLTYPE GetContextFlags() final;
|
|
|
|
|
|
|
|
void STDMETHODCALLTYPE Flush() final;
|
|
|
|
|
|
|
|
void STDMETHODCALLTYPE ExecuteCommandList(
|
|
|
|
ID3D11CommandList* pCommandList,
|
2018-03-06 18:34:34 +01:00
|
|
|
BOOL RestoreContextState) final;
|
2018-01-20 13:22:44 +01:00
|
|
|
|
|
|
|
HRESULT STDMETHODCALLTYPE FinishCommandList(
|
2018-03-06 18:34:34 +01:00
|
|
|
BOOL RestoreDeferredContextState,
|
2018-01-20 13:22:44 +01:00
|
|
|
ID3D11CommandList **ppCommandList) final;
|
|
|
|
|
|
|
|
HRESULT STDMETHODCALLTYPE Map(
|
|
|
|
ID3D11Resource* pResource,
|
|
|
|
UINT Subresource,
|
|
|
|
D3D11_MAP MapType,
|
|
|
|
UINT MapFlags,
|
|
|
|
D3D11_MAPPED_SUBRESOURCE* pMappedResource) final;
|
|
|
|
|
|
|
|
void STDMETHODCALLTYPE Unmap(
|
|
|
|
ID3D11Resource* pResource,
|
|
|
|
UINT Subresource) final;
|
|
|
|
|
2018-01-21 18:04:22 +01:00
|
|
|
void SynchronizeCsThread();
|
2018-01-20 13:22:44 +01:00
|
|
|
|
|
|
|
private:
|
|
|
|
|
2018-01-20 23:12:03 +01:00
|
|
|
DxvkCsThread m_csThread;
|
|
|
|
|
2018-01-21 18:04:22 +01:00
|
|
|
void SynchronizeDevice();
|
2018-01-21 02:57:36 +01:00
|
|
|
|
2018-01-23 12:03:26 +01:00
|
|
|
void EmitCsChunk(Rc<DxvkCsChunk>&& chunk) final;
|
2018-01-20 22:52:18 +01:00
|
|
|
|
2018-01-20 13:22:44 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
}
|