#ifndef RAGNAROK_SOURCE_RENDER_PRIMITIVES_RENDERVERTEXPOOL_H #define RAGNAROK_SOURCE_RENDER_PRIMITIVES_RENDERVERTEXPOOL_H #include "Render/Primitives/RenderPrimitive.h" #include #include #include class RenderVertexPool { public: RenderVertexPool(); RenderVertex* Acquire(unsigned count); void Rewind(); private: struct Block : std::vector { RenderVertex* Append(unsigned count); }; /* 00B0 */ unsigned m_minimum; /* 00B4 */ unsigned m_used; /* 00B8 */ std::forward_list> m_active; /* 00BC */ std::forward_list> m_unused; Block& Activate(unsigned capacity); }; #if defined(_WIN32) && !defined(_WIN64) static_assert(sizeof(RenderVertexPool) == 16); #endif #endif