summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineOpenGL
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2019-10-08 01:57:30 +0000
committerEgor Yusov <egor.yusov@gmail.com>2019-10-08 01:57:30 +0000
commit75a9aea02e4cd93482feb5232fbc35aa333f9400 (patch)
treeb67888b9f1cd629257f34a2339fad7e22c7270b9 /Graphics/GraphicsEngineOpenGL
parentCompletely reworked shader resource binding implementation in OpenGL backend ... (diff)
downloadDiligentCore-75a9aea02e4cd93482feb5232fbc35aa333f9400.tar.gz
DiligentCore-75a9aea02e4cd93482feb5232fbc35aa333f9400.zip
Fixed gcc/clang build issues
Diffstat (limited to 'Graphics/GraphicsEngineOpenGL')
-rw-r--r--Graphics/GraphicsEngineOpenGL/include/GLPipelineResourceLayout.h34
-rw-r--r--Graphics/GraphicsEngineOpenGL/include/GLProgramResources.h1
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/GLPipelineResourceLayout.cpp25
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,