From 946884fb264969aa03e5d266d2349c8a74e5cf55 Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Tue, 24 Jul 2018 21:45:59 -0700 Subject: Updated VertexStreamInfo to use final buffer implementation type --- Graphics/GraphicsEngine/include/DeviceContextBase.h | 15 ++++++++------- .../GraphicsEngineD3D11/src/DeviceContextD3D11Impl.cpp | 6 +++--- .../GraphicsEngineD3D12/src/DeviceContextD3D12Impl.cpp | 10 +++++----- Graphics/GraphicsEngineOpenGL/include/VAOCache.h | 3 ++- Graphics/GraphicsEngineOpenGL/src/VAOCache.cpp | 2 +- Graphics/GraphicsEngineVulkan/src/DeviceContextVkImpl.cpp | 8 ++++---- 6 files changed, 23 insertions(+), 21 deletions(-) (limited to 'Graphics') diff --git a/Graphics/GraphicsEngine/include/DeviceContextBase.h b/Graphics/GraphicsEngine/include/DeviceContextBase.h index 1a291a10..037e6ba4 100644 --- a/Graphics/GraphicsEngine/include/DeviceContextBase.h +++ b/Graphics/GraphicsEngine/include/DeviceContextBase.h @@ -41,10 +41,11 @@ namespace Diligent { /// Describes input vertex stream +template struct VertexStreamInfo { /// Strong reference to the buffer object - RefCntAutoPtr pBuffer; + RefCntAutoPtr pBuffer; Uint32 Offset = 0; ///< Offset in bytes }; @@ -149,7 +150,7 @@ protected: RefCntAutoPtr m_pSwapChain; /// Vertex streams. Every stream holds strong reference to the buffer - VertexStreamInfo m_VertexStreams[MaxBufferSlots]; + VertexStreamInfo m_VertexStreams[MaxBufferSlots]; /// Number of bound vertex streams Uint32 m_NumVertexStreams = 0; @@ -227,9 +228,9 @@ inline void DeviceContextBase{}; for (Uint32 s = StartSlot + NumBuffersSet; s < m_NumVertexStreams; ++s) - m_VertexStreams[s] = VertexStreamInfo{}; + m_VertexStreams[s] = VertexStreamInfo{}; m_NumVertexStreams = 0; } m_NumVertexStreams = std::max(m_NumVertexStreams, StartSlot + NumBuffersSet ); @@ -237,7 +238,7 @@ inline void DeviceContextBase(ppBuffers[Buff]) : nullptr; CurrStream.Offset = pOffsets ? pOffsets[Buff] : 0; #ifdef DEVELOPMENT if ( CurrStream.pBuffer ) @@ -252,7 +253,7 @@ inline void DeviceContextBase 0 && !m_VertexStreams[m_NumVertexStreams-1].pBuffer) - m_VertexStreams[m_NumVertexStreams--] = VertexStreamInfo{}; + m_VertexStreams[m_NumVertexStreams--] = VertexStreamInfo{}; } template @@ -566,7 +567,7 @@ template :: ClearStateCache() { for(Uint32 stream=0; stream < m_NumVertexStreams; ++stream) - m_VertexStreams[stream] = VertexStreamInfo(); + m_VertexStreams[stream] = VertexStreamInfo{}; #ifdef _DEBUG for(Uint32 stream=m_NumVertexStreams; stream < _countof(m_VertexStreams); ++stream) { diff --git a/Graphics/GraphicsEngineD3D11/src/DeviceContextD3D11Impl.cpp b/Graphics/GraphicsEngineD3D11/src/DeviceContextD3D11Impl.cpp index 0692c48c..d810911e 100644 --- a/Graphics/GraphicsEngineD3D11/src/DeviceContextD3D11Impl.cpp +++ b/Graphics/GraphicsEngineD3D11/src/DeviceContextD3D11Impl.cpp @@ -623,12 +623,12 @@ namespace Diligent bool BindVBs = m_NumVertexStreams != m_NumCommittedD3D11VBs; - const auto *Strides = pPipelineStateD3D11->GetBufferStrides(); + const auto* Strides = pPipelineStateD3D11->GetBufferStrides(); for( UINT Slot = 0; Slot < m_NumVertexStreams; ++Slot ) { - auto &CurrStream = m_VertexStreams[Slot]; + auto& CurrStream = m_VertexStreams[Slot]; VERIFY( CurrStream.pBuffer, "Attempting to bind a null buffer for rendering" ); - auto* pBuffD3D11Impl = CurrStream.pBuffer.RawPtr(); + auto* pBuffD3D11Impl = CurrStream.pBuffer.RawPtr(); ID3D11Buffer* pd3d11Buffer = pBuffD3D11Impl->m_pd3d11Buffer; auto Stride = Strides[Slot]; auto Offset = CurrStream.Offset; diff --git a/Graphics/GraphicsEngineD3D12/src/DeviceContextD3D12Impl.cpp b/Graphics/GraphicsEngineD3D12/src/DeviceContextD3D12Impl.cpp index f490ff9a..2d660718 100644 --- a/Graphics/GraphicsEngineD3D12/src/DeviceContextD3D12Impl.cpp +++ b/Graphics/GraphicsEngineD3D12/src/DeviceContextD3D12Impl.cpp @@ -249,9 +249,9 @@ namespace Diligent { for( UINT Buff = 0; Buff < m_NumVertexStreams; ++Buff ) { - auto &CurrStream = m_VertexStreams[Buff]; + auto& CurrStream = m_VertexStreams[Buff]; VERIFY( CurrStream.pBuffer, "Attempting to bind a null buffer for rendering" ); - auto *pBufferD3D12 = static_cast(CurrStream.pBuffer.RawPtr()); + auto* pBufferD3D12 = CurrStream.pBuffer.RawPtr(); if(!pBufferD3D12->CheckAllStates(D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER)) GraphCtx.TransitionResource(pBufferD3D12, D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER); } @@ -269,11 +269,11 @@ namespace Diligent bool DynamicBufferPresent = false; for( UINT Buff = 0; Buff < m_NumVertexStreams; ++Buff ) { - auto &CurrStream = m_VertexStreams[Buff]; - auto &VBView = VBViews[Buff]; + auto& CurrStream = m_VertexStreams[Buff]; + auto& VBView = VBViews[Buff]; VERIFY( CurrStream.pBuffer, "Attempting to bind a null buffer for rendering" ); - auto *pBufferD3D12 = static_cast(CurrStream.pBuffer.RawPtr()); + auto *pBufferD3D12 = CurrStream.pBuffer.RawPtr(); if (pBufferD3D12->GetDesc().Usage == USAGE_DYNAMIC) { DynamicBufferPresent = true; diff --git a/Graphics/GraphicsEngineOpenGL/include/VAOCache.h b/Graphics/GraphicsEngineOpenGL/include/VAOCache.h index 5b064b50..2160d97f 100644 --- a/Graphics/GraphicsEngineOpenGL/include/VAOCache.h +++ b/Graphics/GraphicsEngineOpenGL/include/VAOCache.h @@ -31,6 +31,7 @@ #include "HashUtils.h" #include "DeviceContextBase.h" #include "BaseInterfacesGL.h" +#include "BufferGLImpl.h" namespace Diligent { @@ -50,7 +51,7 @@ public: const GLObjectWrappers::GLVertexArrayObj& GetVAO( IPipelineState *pPSO, IBuffer *pIndexBuffer, - VertexStreamInfo VertexStreams[], + VertexStreamInfo VertexStreams[], Uint32 NumVertexStreams, class GLContextState &GLContextState); const GLObjectWrappers::GLVertexArrayObj& GetEmptyVAO(); diff --git a/Graphics/GraphicsEngineOpenGL/src/VAOCache.cpp b/Graphics/GraphicsEngineOpenGL/src/VAOCache.cpp index 18ad1ff8..04c2789c 100644 --- a/Graphics/GraphicsEngineOpenGL/src/VAOCache.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/VAOCache.cpp @@ -73,7 +73,7 @@ void VAOCache::OnDestroyPSO(IPipelineState *pPSO) const GLObjectWrappers::GLVertexArrayObj& VAOCache::GetVAO( IPipelineState *pPSO, IBuffer *pIndexBuffer, - VertexStreamInfo VertexStreams[], + VertexStreamInfo VertexStreams[], Uint32 NumVertexStreams, GLContextState &GLContextState ) { diff --git a/Graphics/GraphicsEngineVulkan/src/DeviceContextVkImpl.cpp b/Graphics/GraphicsEngineVulkan/src/DeviceContextVkImpl.cpp index b4cd4dc9..5cbd0ada 100644 --- a/Graphics/GraphicsEngineVulkan/src/DeviceContextVkImpl.cpp +++ b/Graphics/GraphicsEngineVulkan/src/DeviceContextVkImpl.cpp @@ -292,9 +292,9 @@ namespace Diligent { for ( UINT Buff = 0; Buff < m_NumVertexStreams; ++Buff ) { - auto &CurrStream = m_VertexStreams[Buff]; + auto& CurrStream = m_VertexStreams[Buff]; VERIFY( CurrStream.pBuffer, "Attempting to bind a null buffer for rendering" ); - auto *pBufferVk = CurrStream.pBuffer.RawPtr(); + auto* pBufferVk = CurrStream.pBuffer.RawPtr(); if (!pBufferVk->CheckAccessFlags(VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT)) BufferMemoryBarrier(*pBufferVk, VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT); } @@ -313,10 +313,10 @@ namespace Diligent bool DynamicBufferPresent = false; for ( UINT slot = 0; slot < m_NumVertexStreams; ++slot ) { - auto &CurrStream = m_VertexStreams[slot]; + auto& CurrStream = m_VertexStreams[slot]; VERIFY( CurrStream.pBuffer, "Attempting to bind a null buffer for rendering" ); - auto *pBufferVk = CurrStream.pBuffer.RawPtr(); + auto* pBufferVk = CurrStream.pBuffer.RawPtr(); if (pBufferVk->GetDesc().Usage == USAGE_DYNAMIC) { DynamicBufferPresent = true; -- cgit v1.2.3