#ifndef HYDRAVERTEXBUFFERMANAGER #define HYDRAVERTEXBUFFERMANAGER #include "../engine/HydraObject.h" #include "HydraBuffer.h" #include "HydraVertexBuffer.h" #include #include #include class HydraVertexBufferManager : public HydraObject { public: const uint32_t MAX_BUFFERS = 10000; void Initialise(); void Shutdown(); HydraID CreateVertexBuffer(uint32_t vertex_buffer_size_bytes, uint32_t index_buffer_size_bytes, uint32_t triangle_count); void DeleteVertexBuffer(HydraID buffer_id); void UpdateVertexBuffer(HydraID buffer_id, void* vertex_data, void* index_data); HydraVertexBuffer& GetVertexBuffer(HydraID buffer_id); private: std::mutex m_mutex; std::queue m_available_buffer_ids; std::vector m_vertex_buffers; HydraID _GetBufferID(); }; #endif /* HYDRAVERTEXBUFFERMANAGER */