Split improvemnts before tess shader

This commit is contained in:
Confideo-IOM
2026-09-26 18:40:34 +01:00
parent 5ded63d3f4
commit 6e1a531f94
29 changed files with 282 additions and 201 deletions
@@ -3,6 +3,7 @@
#include "../../engine/HydraEngine.h"
#include "../../actor/HydraActorManager.h"
#include "../../task/HydraTask.h"
#include "../../scheduler/HydraTaskScheduler.h"
#include "../../ecs/HydraECS.h"
#include "../../ecs/components/HydraPositionComponent.h"
#include "../../ecs/components/HydraMeshComponent.h"
@@ -14,31 +15,44 @@
#include "../../buffer/HydraMaterialBuffer.h"
#include "../../mesh/HydraMeshManager.h"
#include "../../mesh/HydraMesh.h"
#include "../../task/planet/HydraCheckPlanetResolutionTask.hpp"
void HydraPlanetActor::FixedTick(float delta_t)
{
HydraID player_id = GetEngine()->GetPossessedPlayer();
HydraPositionComponent pos_comp = GetEngine()->ECS()->GetComponent<HydraPositionComponent>(player_id);
HydraActorManager* actor_manager = GetEngine()->ActorManager();
HydraECS* ecs = GetEngine()->ECS();
HydraTaskScheduler* task_scheduler = GetEngine()->TaskScheduler();
if(task_scheduler->BarrierComplete(m_update_barrier))
{
HydraPlanetQuadActor* quad0 = static_cast<HydraPlanetQuadActor*>(actor_manager->GetActor(m_quads[0]));
HydraPlanetQuadActor* quad1 = static_cast<HydraPlanetQuadActor*>(actor_manager->GetActor(m_quads[1]));
HydraPlanetQuadActor* quad2 = static_cast<HydraPlanetQuadActor*>(actor_manager->GetActor(m_quads[2]));
HydraPlanetQuadActor* quad3 = static_cast<HydraPlanetQuadActor*>(actor_manager->GetActor(m_quads[3]));
HydraPlanetQuadActor* quad4 = static_cast<HydraPlanetQuadActor*>(actor_manager->GetActor(m_quads[4]));
HydraPlanetQuadActor* quad5 = static_cast<HydraPlanetQuadActor*>(actor_manager->GetActor(m_quads[5]));
m_update_barrier = task_scheduler->CreateBarrier();
HydraID task_id = task_scheduler->CreateTask<HydraCheckPlanetResolutionTask>(HydraThreadAffinity::General, m_update_barrier);
HydraCheckPlanetResolutionTask* task = static_cast<HydraCheckPlanetResolutionTask*>(task_scheduler->GetTask(task_id));
task->Initialise(m_quads);
task_scheduler->StartTask(task_id);
// HydraID player_id = GetEngine()->GetPossessedPlayer();
// HydraPositionComponent pos_comp = GetEngine()->ECS()->GetComponent<HydraPositionComponent>(player_id);
// HydraActorManager* actor_manager = GetEngine()->ActorManager();
// HydraECS* ecs = GetEngine()->ECS();
quad0->CheckResolution(pos_comp.position);
quad1->CheckResolution(pos_comp.position);
quad2->CheckResolution(pos_comp.position);
quad3->CheckResolution(pos_comp.position);
quad4->CheckResolution(pos_comp.position);
quad5->CheckResolution(pos_comp.position);
// HydraPlanetQuadActor* quad0 = static_cast<HydraPlanetQuadActor*>(actor_manager->GetActor(m_quads[0]));
// HydraPlanetQuadActor* quad1 = static_cast<HydraPlanetQuadActor*>(actor_manager->GetActor(m_quads[1]));
// HydraPlanetQuadActor* quad2 = static_cast<HydraPlanetQuadActor*>(actor_manager->GetActor(m_quads[2]));
// HydraPlanetQuadActor* quad3 = static_cast<HydraPlanetQuadActor*>(actor_manager->GetActor(m_quads[3]));
// HydraPlanetQuadActor* quad4 = static_cast<HydraPlanetQuadActor*>(actor_manager->GetActor(m_quads[4]));
// HydraPlanetQuadActor* quad5 = static_cast<HydraPlanetQuadActor*>(actor_manager->GetActor(m_quads[5]));
// quad0->CheckResolution(pos_comp.position);
// quad1->CheckResolution(pos_comp.position);
// quad2->CheckResolution(pos_comp.position);
// quad3->CheckResolution(pos_comp.position);
// quad4->CheckResolution(pos_comp.position);
// quad5->CheckResolution(pos_comp.position);
}
}
void HydraPlanetActor::InitialiseComponents()
{
m_quads.resize(6);
m_update_barrier = GetEngine()->TaskScheduler()->CreateBarrier();
// HydraECS* ecs = GetEngine()->ECS();
// HydraID entity_id = ecs->CreateEntity();
_CreatePosition();