diff options
| author | Egor Yusov <egor.yusov@gmail.com> | 2019-10-08 01:57:30 +0000 |
|---|---|---|
| committer | Egor Yusov <egor.yusov@gmail.com> | 2019-10-08 01:57:30 +0000 |
| commit | 75a9aea02e4cd93482feb5232fbc35aa333f9400 (patch) | |
| tree | b67888b9f1cd629257f34a2339fad7e22c7270b9 /Graphics/GraphicsEngineOpenGL | |
| parent | Completely reworked shader resource binding implementation in OpenGL backend ... (diff) | |
| download | DiligentCore-75a9aea02e4cd93482feb5232fbc35aa333f9400.tar.gz DiligentCore-75a9aea02e4cd93482feb5232fbc35aa333f9400.zip | |
Fixed gcc/clang build issues
Diffstat (limited to 'Graphics/GraphicsEngineOpenGL')
3 files changed, 51 insertions, 9 deletions
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<typename ResourceType> Uint32 GetNumResources()const; - template<> Uint32 GetNumResources<UniformBuffBindInfo>() const { return GetNumUBs(); } - template<> Uint32 GetNumResources<SamplerBindInfo>() const { return GetNumSamplers(); } - template<> Uint32 GetNumResources<ImageBindInfo>() const { return GetNumImages(); } - template<> Uint32 GetNumResources<StorageBufferBindInfo>() const { return GetNumStorageBuffers(); } template<typename ResourceType> 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<Int8, 6> m_ProgramIndex = {-1, -1, -1, -1, -1, -1}; +/*40*/ std::array<Int8, 6> m_ProgramIndex = {{-1, -1, -1, -1, -1, -1}}; /*46*/ Uint8 m_NumPrograms = 0; /*48*/ template<typename ResourceType> OffsetType GetResourceOffset()const; - template<> OffsetType GetResourceOffset<UniformBuffBindInfo> () const { return m_UBOffset; } - template<> OffsetType GetResourceOffset<SamplerBindInfo> () const { return m_SamplerOffset; } - template<> OffsetType GetResourceOffset<ImageBindInfo> () const { return m_ImageOffset; } - template<> OffsetType GetResourceOffset<StorageBufferBindInfo>() const { return m_StorageBufferOffset; } template<typename ResourceType> ResourceType& GetResource(Uint32 ResIndex) @@ -349,4 +341,28 @@ private: friend class ShaderVariableLocator; }; +template<> +inline Uint32 GLPipelineResourceLayout::GetNumResources<GLPipelineResourceLayout::UniformBuffBindInfo>()const +{ + return GetNumUBs(); +} + +template<> +inline Uint32 GLPipelineResourceLayout::GetNumResources<GLPipelineResourceLayout::SamplerBindInfo>()const +{ + return GetNumSamplers(); +} + +template<> +inline Uint32 GLPipelineResourceLayout::GetNumResources<GLPipelineResourceLayout::ImageBindInfo>()const +{ + return GetNumImages(); +} + +template<> +inline Uint32 GLPipelineResourceLayout::GetNumResources<GLPipelineResourceLayout::StorageBufferBindInfo>()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<GLPipelineResourceLayout::UniformBuffBindInfo>()const +{ + return m_UBOffset; +} + +template<> +inline GLPipelineResourceLayout::OffsetType GLPipelineResourceLayout::GetResourceOffset<GLPipelineResourceLayout::SamplerBindInfo>()const +{ + return m_SamplerOffset; +} + +template<> +inline GLPipelineResourceLayout::OffsetType GLPipelineResourceLayout::GetResourceOffset<GLPipelineResourceLayout::ImageBindInfo>()const +{ + return m_ImageOffset; +} + +template<> +inline GLPipelineResourceLayout::OffsetType GLPipelineResourceLayout::GetResourceOffset<GLPipelineResourceLayout::StorageBufferBindInfo>()const +{ + return m_StorageBufferOffset; +} + + size_t GLPipelineResourceLayout::GetRequiredMemorySize(GLProgramResources* ProgramResources, Uint32 NumPrograms, const PipelineResourceLayoutDesc& ResourceLayout, |
