#ifndef HYDRAMATERIALBUFFERMANAGER #define HYDRAMATERIALBUFFERMANAGER #include "../engine/HydraObject.h" #include "HydraMaterialBuffer.h" #include #include #include #include #include #include #include class HydraMaterialBufferManager : public HydraObject { public: void Intialise(); void Shutdown(); HydraID CreateMaterial(const HydraMaterialBuffer& material); void DeleteMaterial(HydraID material_id); void* GetMaterialBuffer(); void UpdateBuffer(); private: uint32_t m_material_buffer_id =0; uint32_t m_texture_buffer_id =0; std::mutex m_mutex; std::queue m_available_material_ids; std::vector m_material; }; #endif /* HYDRAMATERIALBUFFERMANAGER */