Files
HydraV3/HydraEngine/source/buffer/HydraVertexBufferManager.h
2026-07-17 15:30:29 +01:00

36 lines
966 B
C++

#ifndef HYDRAVERTEXBUFFERMANAGER
#define HYDRAVERTEXBUFFERMANAGER
#include "../engine/HydraObject.h"
#include "HydraBuffer.h"
#include "HydraVertexBuffer.h"
#include <queue>
#include <vector>
#include <mutex>
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<HydraID> m_available_buffer_ids;
std::vector<HydraVertexBuffer> m_vertex_buffers;
HydraID _GetBufferID();
};
#endif /* HYDRAVERTEXBUFFERMANAGER */