Fix build

This commit is contained in:
2023-09-10 10:25:03 +02:00
parent 6a5e660c2e
commit 8a31a63713
2 changed files with 19 additions and 15 deletions
+8 -6
View File
@@ -13,6 +13,7 @@ class BehaviorSystem : public TaskGraphSystem
{
public:
Array<Behavior*> Behaviors;
void Job(int32 index);
void Execute(TaskGraph* graph) override;
};
@@ -20,6 +21,8 @@ public:
class BehaviorService : public EngineService
{
public:
Array<Behavior*> UpdateList;
BehaviorService()
: EngineService(TEXT("Behaviors"), 0)
{
@@ -30,7 +33,6 @@ public:
};
BehaviorService BehaviorServiceInstance;
Array<Behavior*> UpdateList;
TaskGraphSystem* Behavior::System = nullptr;
void BehaviorSystem::Job(int32 index)
@@ -42,10 +44,10 @@ void BehaviorSystem::Job(int32 index)
void BehaviorSystem::Execute(TaskGraph* graph)
{
// Copy list of behaviors to update (in case one of them gets disabled during async jobs)
if (UpdateList.Count() == 0)
if (BehaviorServiceInstance.UpdateList.Count() == 0)
return;
Behaviors.Clear();
Behaviors.Add(UpdateList);
Behaviors.Add(BehaviorServiceInstance.UpdateList);
// Schedule work to update all behaviors in async
Function<void(int32)> job;
@@ -62,7 +64,7 @@ bool BehaviorService::Init()
void BehaviorService::Dispose()
{
UpdateList.Resize(0);
BehaviorServiceInstance.UpdateList.Resize(0);
SAFE_DELETE(Behavior::System);
}
@@ -155,12 +157,12 @@ void Behavior::ResetLogic()
void Behavior::OnEnable()
{
UpdateList.Add(this);
BehaviorServiceInstance.UpdateList.Add(this);
if (AutoStart)
StartLogic();
}
void Behavior::OnDisable()
{
UpdateList.Remove(this);
BehaviorServiceInstance.UpdateList.Remove(this);
}
+11 -9
View File
@@ -12,6 +12,8 @@
class AnimationsService : public EngineService
{
public:
Array<AnimatedModel*> UpdateList;
AnimationsService()
: EngineService(TEXT("Animations"), -10)
{
@@ -25,6 +27,7 @@ class AnimationsSystem : public TaskGraphSystem
{
public:
float DeltaTime, UnscaledDeltaTime, Time, UnscaledTime;
void Job(int32 index);
void Execute(TaskGraph* graph) override;
void PostExecute(TaskGraph* graph) override;
@@ -47,7 +50,6 @@ namespace
}
AnimationsService AnimationManagerInstance;
Array<AnimatedModel*> UpdateList;
TaskGraphSystem* Animations::System = nullptr;
#if USE_EDITOR
Delegate<Asset*, ScriptingObject*, uint32, uint32> Animations::DebugFlow;
@@ -79,7 +81,7 @@ void AnimationsService::Dispose()
void AnimationsSystem::Job(int32 index)
{
PROFILE_CPU_NAMED("Animations.Job");
auto animatedModel = UpdateList[index];
auto animatedModel = AnimationManagerInstance.UpdateList[index];
if (CanUpdateModel(animatedModel))
{
auto graph = animatedModel->AnimationGraph.Get();
@@ -112,7 +114,7 @@ void AnimationsSystem::Job(int32 index)
void AnimationsSystem::Execute(TaskGraph* graph)
{
if (UpdateList.Count() == 0)
if (AnimationManagerInstance.UpdateList.Count() == 0)
return;
// Setup data for async update
@@ -131,7 +133,7 @@ void AnimationsSystem::Execute(TaskGraph* graph)
// Schedule work to update all animated models in async
Function<void(int32)> job;
job.Bind<AnimationsSystem, &AnimationsSystem::Job>(this);
graph->DispatchJob(job, UpdateList.Count());
graph->DispatchJob(job, AnimationManagerInstance.UpdateList.Count());
}
void AnimationsSystem::PostExecute(TaskGraph* graph)
@@ -139,9 +141,9 @@ void AnimationsSystem::PostExecute(TaskGraph* graph)
PROFILE_CPU_NAMED("Animations.PostExecute");
// Update gameplay
for (int32 index = 0; index < UpdateList.Count(); index++)
for (int32 index = 0; index < AnimationManagerInstance.UpdateList.Count(); index++)
{
auto animatedModel = UpdateList[index];
auto animatedModel = AnimationManagerInstance.UpdateList[index];
if (CanUpdateModel(animatedModel))
{
animatedModel->OnAnimationUpdated_Sync();
@@ -149,15 +151,15 @@ void AnimationsSystem::PostExecute(TaskGraph* graph)
}
// Cleanup
UpdateList.Clear();
AnimationManagerInstance.UpdateList.Clear();
}
void Animations::AddToUpdate(AnimatedModel* obj)
{
UpdateList.Add(obj);
AnimationManagerInstance.UpdateList.Add(obj);
}
void Animations::RemoveFromUpdate(AnimatedModel* obj)
{
UpdateList.Remove(obj);
AnimationManagerInstance.UpdateList.Remove(obj);
}