summaryrefslogtreecommitdiffstats
path: root/Graphics
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2020-12-05 01:59:50 +0000
committerassiduous <assiduous@diligentgraphics.com>2020-12-05 01:59:50 +0000
commitb1d2f4ad1895684d513ac40553516263bc8a5876 (patch)
treea49a2be92cfafee1e0fe45de8467dbf90d81a698 /Graphics
parentDynamicAtlasManager: few minor udpates to tests (diff)
downloadDiligentCore-b1d2f4ad1895684d513ac40553516263bc8a5876.tar.gz
DiligentCore-b1d2f4ad1895684d513ac40553516263bc8a5876.zip
DynamicAtlasManager: fixed dtor to allow moved-out objects
Diffstat (limited to 'Graphics')
-rw-r--r--Graphics/GraphicsAccessories/src/DynamicAtlasManager.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/Graphics/GraphicsAccessories/src/DynamicAtlasManager.cpp b/Graphics/GraphicsAccessories/src/DynamicAtlasManager.cpp
index 5596d935..61da8516 100644
--- a/Graphics/GraphicsAccessories/src/DynamicAtlasManager.cpp
+++ b/Graphics/GraphicsAccessories/src/DynamicAtlasManager.cpp
@@ -49,14 +49,23 @@ DynamicAtlasManager::DynamicAtlasManager(Uint32 Width, Uint32 Height) :
DynamicAtlasManager::~DynamicAtlasManager()
{
+ if (m_RegionMap)
+ {
#if DILIGENT_DEBUG
- DbgVerifyConsistency();
+ DbgVerifyConsistency();
#endif
- VERIFY_EXPR(m_FreeRegionsByWidth.size() == m_FreeRegionsByHeight.size());
- VERIFY(m_dbgRegions.size() == 1 && m_dbgRegions.begin()->R == Region(0, 0, m_Width, m_Height) && !m_dbgRegions.begin()->IsAllocated,
- "Not all allocations have been freed");
- DEV_CHECK_ERR(m_FreeRegionsByWidth.size() == 1, "There expected to be a single free region");
+ VERIFY_EXPR(m_FreeRegionsByWidth.size() == m_FreeRegionsByHeight.size());
+ VERIFY(m_dbgRegions.size() == 1 && m_dbgRegions.begin()->R == Region(0, 0, m_Width, m_Height) && !m_dbgRegions.begin()->IsAllocated,
+ "Not all allocations have been freed");
+ DEV_CHECK_ERR(m_FreeRegionsByWidth.size() == 1, "There expected to be a single free region");
+ }
+ else
+ {
+ VERIFY_EXPR(m_FreeRegionsByWidth.empty());
+ VERIFY_EXPR(m_FreeRegionsByHeight.empty());
+ VERIFY_EXPR(m_dbgRegions.empty());
+ }
}
DynamicAtlasManager::Region DynamicAtlasManager::Allocate(Uint32 Width, Uint32 Height)