From 75a9aea02e4cd93482feb5232fbc35aa333f9400 Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Mon, 7 Oct 2019 18:57:30 -0700 Subject: Fixed gcc/clang build issues --- .../include/GLPipelineResourceLayout.h | 34 ++++++++++++++++------ .../include/GLProgramResources.h | 1 + .../src/GLPipelineResourceLayout.cpp | 25 ++++++++++++++++ 3 files changed, 51 insertions(+), 9 deletions(-) (limited to 'Graphics/GraphicsEngineOpenGL') diff --git a/Graphics/GraphicsEngineOpenGL/include/GLPipelineResourceLayout.h b/Graphics/GraphicsEngineOpenGL/include/GLPipelineResourceLayout.h index d2cf2951..0cc95e7b 100644 --- a/Graphics/GraphicsEngineOpenGL/include/GLPipelineResourceLayout.h +++ b/Graphics/GraphicsEngineOpenGL/include/GLPipelineResourceLayout.h @@ -238,10 +238,6 @@ public: Uint32 GetNumStorageBuffers() const { return (m_VariableEndOffset - m_StorageBufferOffset) / sizeof(StorageBufferBindInfo); } template Uint32 GetNumResources()const; - template<> Uint32 GetNumResources() const { return GetNumUBs(); } - template<> Uint32 GetNumResources() const { return GetNumSamplers(); } - template<> Uint32 GetNumResources() const { return GetNumImages(); } - template<> Uint32 GetNumResources() const { return GetNumStorageBuffers(); } template const ResourceType& GetConstResource(Uint32 ResIndex)const @@ -268,15 +264,11 @@ private: /*34*/ OffsetType m_ImageOffset = 0; /*36*/ OffsetType m_StorageBufferOffset = 0; /*38*/ OffsetType m_VariableEndOffset = 0; -/*40*/ std::array m_ProgramIndex = {-1, -1, -1, -1, -1, -1}; +/*40*/ std::array m_ProgramIndex = {{-1, -1, -1, -1, -1, -1}}; /*46*/ Uint8 m_NumPrograms = 0; /*48*/ template OffsetType GetResourceOffset()const; - template<> OffsetType GetResourceOffset () const { return m_UBOffset; } - template<> OffsetType GetResourceOffset () const { return m_SamplerOffset; } - template<> OffsetType GetResourceOffset () const { return m_ImageOffset; } - template<> OffsetType GetResourceOffset() const { return m_StorageBufferOffset; } template ResourceType& GetResource(Uint32 ResIndex) @@ -349,4 +341,28 @@ private: friend class ShaderVariableLocator; }; +template<> +inline Uint32 GLPipelineResourceLayout::GetNumResources()const +{ + return GetNumUBs(); +} + +template<> +inline Uint32 GLPipelineResourceLayout::GetNumResources()const +{ + return GetNumSamplers(); +} + +template<> +inline Uint32 GLPipelineResourceLayout::GetNumResources()const +{ + return GetNumImages(); +} + +template<> +inline Uint32 GLPipelineResourceLayout::GetNumResources()const +{ + return GetNumStorageBuffers(); +} + } diff --git a/Graphics/GraphicsEngineOpenGL/include/GLProgramResources.h b/Graphics/GraphicsEngineOpenGL/include/GLProgramResources.h index 74faad45..6ef48f96 100644 --- a/Graphics/GraphicsEngineOpenGL/include/GLProgramResources.h +++ b/Graphics/GraphicsEngineOpenGL/include/GLProgramResources.h @@ -28,6 +28,7 @@ #include "Object.h" #include "StringPool.h" #include "HashUtils.h" +#include "ShaderResourceVariableBase.h" namespace Diligent { diff --git a/Graphics/GraphicsEngineOpenGL/src/GLPipelineResourceLayout.cpp b/Graphics/GraphicsEngineOpenGL/src/GLPipelineResourceLayout.cpp index ba1574b8..06fec118 100644 --- a/Graphics/GraphicsEngineOpenGL/src/GLPipelineResourceLayout.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/GLPipelineResourceLayout.cpp @@ -31,6 +31,31 @@ namespace Diligent { +template<> +inline GLPipelineResourceLayout::OffsetType GLPipelineResourceLayout::GetResourceOffset()const +{ + return m_UBOffset; +} + +template<> +inline GLPipelineResourceLayout::OffsetType GLPipelineResourceLayout::GetResourceOffset()const +{ + return m_SamplerOffset; +} + +template<> +inline GLPipelineResourceLayout::OffsetType GLPipelineResourceLayout::GetResourceOffset()const +{ + return m_ImageOffset; +} + +template<> +inline GLPipelineResourceLayout::OffsetType GLPipelineResourceLayout::GetResourceOffset()const +{ + return m_StorageBufferOffset; +} + + size_t GLPipelineResourceLayout::GetRequiredMemorySize(GLProgramResources* ProgramResources, Uint32 NumPrograms, const PipelineResourceLayoutDesc& ResourceLayout, -- cgit v1.2.3