Files
HydraV3/HydraEngine/source/buffer/HydraMaterialBufferManager.h
T

34 lines
886 B
C++
Raw Normal View History

2026-07-17 15:30:29 +01:00
#ifndef HYDRAMATERIALBUFFERMANAGER
#define HYDRAMATERIALBUFFERMANAGER
#include "../engine/HydraObject.h"
#include "HydraMaterialBuffer.h"
#include <vector>
#include <queue>
#include <unordered_map>
#include <GLMIncludes.h>
#include <stb_image.h>
#include <mutex>
#include <string>
class HydraMaterialBufferManager : public HydraObject
{
public:
void Intialise();
void Shutdown();
HydraID CreateMaterial(const HydraMaterialBuffer& material);
2026-08-28 16:36:25 +01:00
void DeleteMaterial(HydraID material_id);
2026-07-17 15:30:29 +01:00
void* GetMaterialBuffer();
2026-08-28 16:36:25 +01:00
void UpdateBuffer();
2026-07-17 15:30:29 +01:00
private:
2026-08-28 16:36:25 +01:00
uint32_t m_material_buffer_id =0;
uint32_t m_texture_buffer_id =0;
2026-07-17 15:30:29 +01:00
std::mutex m_mutex;
std::queue<HydraID> m_available_material_ids;
std::vector<HydraMaterialBuffer> m_material;
};
#endif /* HYDRAMATERIALBUFFERMANAGER */