diff --git a/Source/Render/Primitives/RenderVertexPool.cpp b/Source/Render/Primitives/RenderVertexPool.cpp index d64e9b2..1a8e132 100644 --- a/Source/Render/Primitives/RenderVertexPool.cpp +++ b/Source/Render/Primitives/RenderVertexPool.cpp @@ -19,6 +19,26 @@ RenderVertexPool::RenderVertexPool() : m_minimum(10240), m_used(0) { this->Activate(this->m_minimum); } +// OFFSET: 0x00561690 +// FUNCTION: fn_02162 +RenderVertexPool::~RenderVertexPool() { + this->Release(); +} + +// OFFSET: 0x00562290 +// FUNCTION: fn_02177 +void RenderVertexPool::Release() { + for (auto& block : this->m_active) { + block.reset(); + } + this->m_active.clear(); + + for (auto& block : this->m_unused) { + block.reset(); + } + this->m_unused.clear(); +} + // OFFSET: 0x00559AA0 // FUNCTION: fn_02070 RenderVertexPool::Block& RenderVertexPool::Activate(unsigned capacity) { diff --git a/Source/Render/Primitives/RenderVertexPool.h b/Source/Render/Primitives/RenderVertexPool.h index 4064d81..0d92b73 100644 --- a/Source/Render/Primitives/RenderVertexPool.h +++ b/Source/Render/Primitives/RenderVertexPool.h @@ -10,6 +10,7 @@ class RenderVertexPool { public: RenderVertexPool(); + ~RenderVertexPool(); RenderVertex* Acquire(unsigned count); void Rewind(); @@ -23,6 +24,7 @@ private: /* 00B8 */ std::forward_list> m_active; /* 00BC */ std::forward_list> m_unused; Block& Activate(unsigned capacity); + void Release(); }; #if defined(_WIN32) && !defined(_WIN64)