#include #include #include #include "render/loader/GLLoader.h" namespace td { namespace render { class VertexCache { typedef std::vector Vector; typedef std::pair ElementsIndex; typedef std::pair DataIndex; private: Vector m_Positions; Vector m_Colors; std::unordered_map m_Indexes; std::unique_ptr m_VertexArray; public: void addData(std::uint64_t index, std::vector positions, std::vector colors); void removeData(std::uint64_t index); void clear(); void updateVertexArray(); const GL::VertexArray& getVertexArray() const { return *m_VertexArray; } bool isEmpty() const { return m_VertexArray == nullptr; } }; } // namespace render } // namespace td