diff options
Diffstat (limited to 'Graphics/GraphicsEngine')
| -rw-r--r-- | Graphics/GraphicsEngine/include/PipelineResourceSignatureBase.hpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/Graphics/GraphicsEngine/include/PipelineResourceSignatureBase.hpp b/Graphics/GraphicsEngine/include/PipelineResourceSignatureBase.hpp index c2f3e2bc..cf0870fc 100644 --- a/Graphics/GraphicsEngine/include/PipelineResourceSignatureBase.hpp +++ b/Graphics/GraphicsEngine/include/PipelineResourceSignatureBase.hpp @@ -45,6 +45,7 @@ #include "PlatformMisc.hpp" #include "SRBMemoryAllocator.hpp" #include "ShaderResourceCacheCommon.hpp" +#include "HashUtils.hpp" namespace Diligent { @@ -593,6 +594,18 @@ protected: return SamplerInd; } + void CalculateHash() + { + const auto* const pThisImpl = static_cast<const PipelineResourceSignatureImplType*>(this); + + m_Hash = CalculatePipelineResourceSignatureDescHash(this->m_Desc); + for (Uint32 i = 0; i < this->m_Desc.NumResources; ++i) + { + const auto& Attr = pThisImpl->GetResourceAttribs(i); + HashCombine(m_Hash, Attr.GetHash()); + } + } + protected: std::unique_ptr<void, STDDeleterRawMem<void>> m_pRawMemory; |
