#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: using Block = std::vector; unsigned m_minimum; unsigned m_used; std::forward_list> m_active; std::forward_list> m_unused; Block& Activate(unsigned capacity); }; #if defined(_WIN32) && !defined(_WIN64) static_assert(sizeof(RenderVertexPool) == 16); #endif #endif