From 61bfee05db60a67fb8be6e72b27ba6724f0dd277 Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Sat, 24 Nov 2018 14:11:02 -0800 Subject: Moved/renamed `IBuffer::UpdateData()` to `IDeviceContext::UpdateBuffer()` Moved/renamed `IBuffer::CopyData()` to `IDeviceContext::CopyBuffer()` --- .../GraphicsEngineD3D11/include/BufferD3D11Impl.h | 2 -- .../include/DeviceContextD3D11Impl.h | 4 +++ .../GraphicsEngineD3D11/src/BufferD3D11Impl.cpp | 34 --------------------- .../src/DeviceContextD3D11Impl.cpp | 35 ++++++++++++++++++++++ 4 files changed, 39 insertions(+), 36 deletions(-) (limited to 'Graphics/GraphicsEngineD3D11') diff --git a/Graphics/GraphicsEngineD3D11/include/BufferD3D11Impl.h b/Graphics/GraphicsEngineD3D11/include/BufferD3D11Impl.h index 5fc77aa3..93aaa715 100644 --- a/Graphics/GraphicsEngineD3D11/include/BufferD3D11Impl.h +++ b/Graphics/GraphicsEngineD3D11/include/BufferD3D11Impl.h @@ -60,8 +60,6 @@ public: virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override final; - virtual void UpdateData( IDeviceContext* pContext, Uint32 Offset, Uint32 Size, const PVoid pData )override final; - virtual void CopyData( IDeviceContext* pContext, IBuffer* pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size )override final; virtual void Map( IDeviceContext* pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData )override final; virtual void Unmap( IDeviceContext* pContext, MAP_TYPE MapType, Uint32 MapFlags )override final; virtual ID3D11Buffer* GetD3D11Buffer()override final{ return m_pd3d11Buffer; } diff --git a/Graphics/GraphicsEngineD3D11/include/DeviceContextD3D11Impl.h b/Graphics/GraphicsEngineD3D11/include/DeviceContextD3D11Impl.h index fe9d4e66..cede1c42 100755 --- a/Graphics/GraphicsEngineD3D11/include/DeviceContextD3D11Impl.h +++ b/Graphics/GraphicsEngineD3D11/include/DeviceContextD3D11Impl.h @@ -86,6 +86,10 @@ public: virtual void Flush()override final; + virtual void UpdateBuffer(IBuffer *pBuffer, Uint32 Offset, Uint32 Size, const PVoid pData)override final; + + virtual void CopyBuffer(IBuffer *pSrcBuffer, IBuffer *pDstBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size)override final; + virtual void FinishFrame()override final; virtual void TransitionResourceStates(Uint32 BarrierCount, StateTransitionDesc* pResourceBarriers)override final; diff --git a/Graphics/GraphicsEngineD3D11/src/BufferD3D11Impl.cpp b/Graphics/GraphicsEngineD3D11/src/BufferD3D11Impl.cpp index d0888937..b2af447b 100644 --- a/Graphics/GraphicsEngineD3D11/src/BufferD3D11Impl.cpp +++ b/Graphics/GraphicsEngineD3D11/src/BufferD3D11Impl.cpp @@ -178,40 +178,6 @@ BufferD3D11Impl :: ~BufferD3D11Impl() IMPLEMENT_QUERY_INTERFACE( BufferD3D11Impl, IID_BufferD3D11, TBufferBase ) -void BufferD3D11Impl::UpdateData( IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData ) -{ - TBufferBase::UpdateData( pContext, Offset, Size, pData ); - - auto *pd3d11DeviceContext = static_cast(pContext)->GetD3D11DeviceContext(); - - D3D11_BOX DstBox; - DstBox.left = Offset; - DstBox.right = Offset + Size; - DstBox.top = 0; - DstBox.bottom = 1; - DstBox.front = 0; - DstBox.back = 1; - auto *pDstBox = (Offset == 0 && Size == m_Desc.uiSizeInBytes) ? nullptr : &DstBox; - pd3d11DeviceContext->UpdateSubresource(m_pd3d11Buffer, 0, pDstBox, pData, 0, 0); -} - -void BufferD3D11Impl :: CopyData(IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size) -{ - TBufferBase::CopyData( pContext, pSrcBuffer, SrcOffset, DstOffset, Size ); - - auto *pd3d11DeviceContext = static_cast(pContext)->GetD3D11DeviceContext(); - auto *pSrBufferD3D11Impl = static_cast( pSrcBuffer ); - - D3D11_BOX SrcBox; - SrcBox.left = SrcOffset; - SrcBox.right = SrcOffset + Size; - SrcBox.top = 0; - SrcBox.bottom = 1; - SrcBox.front = 0; - SrcBox.back = 1; - pd3d11DeviceContext->CopySubresourceRegion(m_pd3d11Buffer, 0, DstOffset, 0, 0, pSrBufferD3D11Impl->m_pd3d11Buffer, 0, &SrcBox); -} - void BufferD3D11Impl :: Map(IDeviceContext* pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid& pMappedData) { TBufferBase::Map( pContext, MapType, MapFlags, pMappedData ); diff --git a/Graphics/GraphicsEngineD3D11/src/DeviceContextD3D11Impl.cpp b/Graphics/GraphicsEngineD3D11/src/DeviceContextD3D11Impl.cpp index 241c7b20..a3fabea1 100755 --- a/Graphics/GraphicsEngineD3D11/src/DeviceContextD3D11Impl.cpp +++ b/Graphics/GraphicsEngineD3D11/src/DeviceContextD3D11Impl.cpp @@ -938,6 +938,41 @@ namespace Diligent m_pd3d11DeviceContext->Flush(); } + void DeviceContextD3D11Impl::UpdateBuffer(IBuffer* pBuffer, Uint32 Offset, Uint32 Size, const PVoid pData) + { + TDeviceContextBase::UpdateBuffer(pBuffer, Offset, Size, pData); + + auto* pBufferD3D11Impl = ValidatedCast( pBuffer ); + + D3D11_BOX DstBox; + DstBox.left = Offset; + DstBox.right = Offset + Size; + DstBox.top = 0; + DstBox.bottom = 1; + DstBox.front = 0; + DstBox.back = 1; + auto* pDstBox = (Offset == 0 && Size == pBufferD3D11Impl->GetDesc().uiSizeInBytes) ? nullptr : &DstBox; + m_pd3d11DeviceContext->UpdateSubresource(pBufferD3D11Impl->m_pd3d11Buffer, 0, pDstBox, pData, 0, 0); + } + + void DeviceContextD3D11Impl::CopyBuffer(IBuffer *pSrcBuffer, IBuffer *pDstBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size) + { + TDeviceContextBase::CopyBuffer(pSrcBuffer, pDstBuffer, SrcOffset, DstOffset, Size); + + auto* pSrcBufferD3D11Impl = ValidatedCast( pSrcBuffer ); + auto* pDstBufferD3D11Impl = ValidatedCast( pDstBuffer ); + + D3D11_BOX SrcBox; + SrcBox.left = SrcOffset; + SrcBox.right = SrcOffset + Size; + SrcBox.top = 0; + SrcBox.bottom = 1; + SrcBox.front = 0; + SrcBox.back = 1; + m_pd3d11DeviceContext->CopySubresourceRegion(pDstBufferD3D11Impl->m_pd3d11Buffer, 0, DstOffset, 0, 0, pSrcBufferD3D11Impl->m_pd3d11Buffer, 0, &SrcBox); + } + + void DeviceContextD3D11Impl::FinishFrame() { } -- cgit v1.2.3