From 7c1064e3eb02e438e5af8b5e5bb439bd1296af25 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Tue, 5 Dec 2017 12:59:35 +0100 Subject: [PATCH] [d3d11] Moved render target state to OM state struct --- src/d3d11/d3d11_context.cpp | 14 +++++++------- src/d3d11/d3d11_context_state.h | 8 +++++--- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/d3d11/d3d11_context.cpp b/src/d3d11/d3d11_context.cpp index bd178d9a..1bb8d09f 100644 --- a/src/d3d11/d3d11_context.cpp +++ b/src/d3d11/d3d11_context.cpp @@ -831,13 +831,13 @@ namespace dxvk { ID3D11RenderTargetView* const* ppRenderTargetViews, ID3D11DepthStencilView* pDepthStencilView) { // Update state vector for OMGetRenderTargets - for (UINT i = 0; i < m_state.omRenderTargetViews.size(); i++) { + for (UINT i = 0; i < m_state.om.renderTargetViews.size(); i++) { D3D11RenderTargetView* view = nullptr; if ((i < NumViews) && (ppRenderTargetViews[i] != nullptr)) view = static_cast(ppRenderTargetViews[i]); - m_state.omRenderTargetViews.at(i) = view; + m_state.om.renderTargetViews.at(i) = view; } // TODO unbind overlapping shader resource views @@ -847,9 +847,9 @@ namespace dxvk { // target bindings are updated. Set up the attachments. DxvkRenderTargets attachments; - for (UINT i = 0; i < m_state.omRenderTargetViews.size(); i++) { - if (m_state.omRenderTargetViews.at(i) != nullptr) - attachments.setColorTarget(i, m_state.omRenderTargetViews.at(i)->GetDXVKImageView()); + for (UINT i = 0; i < m_state.om.renderTargetViews.size(); i++) { + if (m_state.om.renderTargetViews.at(i) != nullptr) + attachments.setColorTarget(i, m_state.om.renderTargetViews.at(i)->GetDXVKImageView()); } // TODO implement depth-stencil views @@ -896,8 +896,8 @@ namespace dxvk { ID3D11DepthStencilView** ppDepthStencilView) { if (ppRenderTargetViews != nullptr) { for (UINT i = 0; i < NumViews; i++) - ppRenderTargetViews[i] = i < m_state.omRenderTargetViews.size() - ? m_state.omRenderTargetViews.at(i).ref() + ppRenderTargetViews[i] = i < m_state.om.renderTargetViews.size() + ? m_state.om.renderTargetViews.at(i).ref() : nullptr; } diff --git a/src/d3d11/d3d11_context_state.h b/src/d3d11/d3d11_context_state.h index f45fb993..c067c40b 100644 --- a/src/d3d11/d3d11_context_state.h +++ b/src/d3d11/d3d11_context_state.h @@ -8,16 +8,18 @@ namespace dxvk { struct D3D11ContextStateOM { + std::array< + Com, + D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT> renderTargetViews; + Rc framebuffer; }; + /** * \brief Context state */ struct D3D11ContextState { - std::array< - Com, - D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT> omRenderTargetViews; D3D11ContextStateOM om; };