Cleaning up shutdown
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
#include "../../buffer/HydraBufferManager.h"
|
||||
#include "../../scheduler/HydraTaskScheduler.h"
|
||||
#include "../../task/buffer/HydraCreateVertexBufferTask.hpp"
|
||||
|
||||
#include "../../task/buffer/HydraDeleteVertexBufferTask.hpp"
|
||||
#include "../../task/buffer/HydraUpdateVertexBufferTask.hpp"
|
||||
#include "../../mesh/HydraMeshManager.h"
|
||||
void HydraMeshSystem::Initialise()
|
||||
@@ -13,6 +13,8 @@ void HydraMeshSystem::Initialise()
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
void HydraMeshSystem::InitialiseComponent(HydraID entity_id)
|
||||
{
|
||||
HydraECS* ecs = GetEngine()->ECS();
|
||||
@@ -42,3 +44,19 @@ void HydraMeshSystem::InitialiseComponent(HydraID entity_id)
|
||||
task_scheduler->WaitForTask(update_buffer_task_id);
|
||||
mesh_comp.mesh_state = HYDRA_STATE::Ready;
|
||||
}
|
||||
|
||||
void HydraMeshSystem::DestroyComponent(HydraID entity_id)
|
||||
{
|
||||
HydraECS* ecs = GetEngine()->ECS();
|
||||
HydraTaskScheduler *task_scheduler = GetEngine()->TaskScheduler();
|
||||
|
||||
HydraBufferManager *buffer_manager = GetEngine()->BufferManager();
|
||||
HydraMeshComponent mesh_comp = ecs->GetComponent<HydraMeshComponent>(entity_id);
|
||||
|
||||
HydraID delete_vertex_task_id = task_scheduler->CreateTask<HydraDeleteVertexBufferTask>(HydraThreadAffinity::Render);
|
||||
HydraDeleteVertexBufferTask *vertex_task = static_cast<HydraDeleteVertexBufferTask *>(task_scheduler->GetTask(delete_vertex_task_id));
|
||||
vertex_task->Intialise(mesh_comp.vertex_buffer_id);
|
||||
task_scheduler->WaitForTask(delete_vertex_task_id);
|
||||
|
||||
GetEngine()->MeshManager()->DeleteMesh(mesh_comp.mesh_id);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user