summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineOpenGL
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2021-03-08 18:27:35 +0000
committerassiduous <assiduous@diligentgraphics.com>2021-03-19 00:38:17 +0000
commit1dfd5042779a493285c397d46f8d903d67c9f972 (patch)
tree4fbb33befdb618afc58a806da4d274596f47261b /Graphics/GraphicsEngineOpenGL
parentShaderResourceBinding{D3D12, Vk, GL} - removed the remaining duplicate code (diff)
downloadDiligentCore-1dfd5042779a493285c397d46f8d903d67c9f972.tar.gz
DiligentCore-1dfd5042779a493285c397d46f8d903d67c9f972.zip
Resource singature: moved allocation of static resource cache and var managers to PipelineResourceSignatureBase
Diffstat (limited to 'Graphics/GraphicsEngineOpenGL')
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/PipelineResourceSignatureGLImpl.cpp20
1 files changed, 7 insertions, 13 deletions
diff --git a/Graphics/GraphicsEngineOpenGL/src/PipelineResourceSignatureGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/PipelineResourceSignatureGLImpl.cpp
index 34bb10e5..cd086f20 100644
--- a/Graphics/GraphicsEngineOpenGL/src/PipelineResourceSignatureGLImpl.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/PipelineResourceSignatureGLImpl.cpp
@@ -95,27 +95,21 @@ PipelineResourceSignatureGLImpl::PipelineResourceSignatureGLImpl(IReferenceCount
try
{
auto& RawAllocator{GetRawAllocator()};
- auto MemPool = ReserveSpace(RawAllocator, Desc,
- [&](FixedLinearAllocator& MemPool) //
- {
- MemPool.AddSpace<ResourceAttribs>(Desc.NumResources);
- MemPool.AddSpace<SamplerPtr>(Desc.NumImmutableSamplers);
- });
+ auto MemPool = AllocateInternalObjects(RawAllocator, Desc,
+ [&](FixedLinearAllocator& MemPool) //
+ {
+ MemPool.AddSpace<ResourceAttribs>(Desc.NumResources);
+ MemPool.AddSpace<SamplerPtr>(Desc.NumImmutableSamplers);
+ });
static_assert(std::is_trivially_destructible<ResourceAttribs>::value,
"ResourceAttribs objects must be constructed to be properly destructed in case an excpetion is thrown");
m_pResourceAttribs = MemPool.Allocate<ResourceAttribs>(m_Desc.NumResources);
m_ImmutableSamplers = MemPool.ConstructArray<SamplerPtr>(m_Desc.NumImmutableSamplers);
- const auto NumStaticResStages = GetNumStaticResStages();
- if (NumStaticResStages > 0)
- {
- m_pStaticResCache = MemPool.Construct<ShaderResourceCacheGL>(ResourceCacheContentType::Signature);
- m_StaticVarsMgrs = MemPool.ConstructArray<ShaderVariableManagerGL>(NumStaticResStages, std::ref(*this), std::ref(*m_pStaticResCache));
- }
-
CreateLayouts();
+ const auto NumStaticResStages = GetNumStaticResStages();
if (NumStaticResStages > 0)
{
constexpr SHADER_RESOURCE_VARIABLE_TYPE AllowedVarTypes[] = {SHADER_RESOURCE_VARIABLE_TYPE_STATIC};