Merge remote-tracking branch 'origin/master'

This commit is contained in:
Wojtek Figat
2021-06-01 11:55:44 +02:00
10 changed files with 38 additions and 38 deletions

View File

@@ -1,6 +1,6 @@
// Copyright (c) 2012-2021 Wojciech Figat. All rights reserved. // Copyright (c) 2012-2021 Wojciech Figat. All rights reserved.
#include "AnimationManager.h" #include "Animations.h"
#include "Engine/Profiler/ProfilerCPU.h" #include "Engine/Profiler/ProfilerCPU.h"
#include "Engine/Level/Actors/AnimatedModel.h" #include "Engine/Level/Actors/AnimatedModel.h"
#include "Engine/Engine/Time.h" #include "Engine/Engine/Time.h"
@@ -9,12 +9,12 @@
Array<AnimatedModel*> UpdateList; Array<AnimatedModel*> UpdateList;
Array<Matrix> UpdateBones; Array<Matrix> UpdateBones;
class AnimationManagerService : public EngineService class AnimationsService : public EngineService
{ {
public: public:
AnimationManagerService() AnimationsService()
: EngineService(TEXT("Animation Manager"), -10) : EngineService(TEXT("Animations"), -10)
{ {
} }
@@ -22,9 +22,9 @@ public:
void Dispose() override; void Dispose() override;
}; };
AnimationManagerService AnimationManagerInstance; AnimationsService AnimationManagerInstance;
void AnimationManagerService::Update() void AnimationsService::Update()
{ {
PROFILE_CPU_NAMED("Animations"); PROFILE_CPU_NAMED("Animations");
@@ -78,18 +78,18 @@ void AnimationManagerService::Update()
UpdateList.Clear(); UpdateList.Clear();
} }
void AnimationManagerService::Dispose() void AnimationsService::Dispose()
{ {
UpdateList.Resize(0); UpdateList.Resize(0);
UpdateBones.Resize(0); UpdateBones.Resize(0);
} }
void AnimationManager::AddToUpdate(AnimatedModel* obj) void Animations::AddToUpdate(AnimatedModel* obj)
{ {
UpdateList.Add(obj); UpdateList.Add(obj);
} }
void AnimationManager::RemoveFromUpdate(AnimatedModel* obj) void Animations::RemoveFromUpdate(AnimatedModel* obj)
{ {
UpdateList.Remove(obj); UpdateList.Remove(obj);
} }

View File

@@ -7,7 +7,7 @@ class AnimatedModel;
/// <summary> /// <summary>
/// The animations service. /// The animations service.
/// </summary> /// </summary>
class AnimationManager class FLAXENGINE_API Animations
{ {
public: public:

View File

@@ -2,7 +2,7 @@
#include "AnimatedModel.h" #include "AnimatedModel.h"
#include "BoneSocket.h" #include "BoneSocket.h"
#include "Engine/Animations/AnimationManager.h" #include "Engine/Animations/Animations.h"
#include "Engine/Engine/Engine.h" #include "Engine/Engine/Engine.h"
#if USE_EDITOR #if USE_EDITOR
#include "Editor/Editor.h" #include "Editor/Editor.h"
@@ -52,7 +52,7 @@ void AnimatedModel::UpdateAnimation()
if (AnimationGraph && AnimationGraph->IsLoaded() && AnimationGraph->Graph.IsReady()) if (AnimationGraph && AnimationGraph->IsLoaded() && AnimationGraph->Graph.IsReady())
{ {
// Request an animation update // Request an animation update
AnimationManager::AddToUpdate(this); Animations::AddToUpdate(this);
} }
else else
{ {
@@ -389,7 +389,7 @@ void AnimatedModel::BeginPlay(SceneBeginData* data)
void AnimatedModel::EndPlay() void AnimatedModel::EndPlay()
{ {
AnimationManager::RemoveFromUpdate(this); Animations::RemoveFromUpdate(this);
SetMasterPoseModel(nullptr); SetMasterPoseModel(nullptr);
// Base // Base

View File

@@ -15,7 +15,7 @@
API_CLASS() class FLAXENGINE_API AnimatedModel : public ModelInstanceActor API_CLASS() class FLAXENGINE_API AnimatedModel : public ModelInstanceActor
{ {
DECLARE_SCENE_OBJECT(AnimatedModel); DECLARE_SCENE_OBJECT(AnimatedModel);
friend class AnimationManagerService; friend class AnimationsService;
public: public:
/// <summary> /// <summary>

View File

@@ -1,7 +1,7 @@
// Copyright (c) 2012-2021 Wojciech Figat. All rights reserved. // Copyright (c) 2012-2021 Wojciech Figat. All rights reserved.
#include "ParticleEffect.h" #include "ParticleEffect.h"
#include "ParticleManager.h" #include "Particles.h"
#include "Engine/Serialization/JsonTools.h" #include "Engine/Serialization/JsonTools.h"
#include "Engine/Serialization/Serialization.h" #include "Engine/Serialization/Serialization.h"
#include "Engine/Level/Scene/SceneRendering.h" #include "Engine/Level/Scene/SceneRendering.h"
@@ -270,7 +270,7 @@ void ParticleEffect::UpdateSimulation()
// Request update // Request update
_lastUpdateFrame = Engine::FrameCount; _lastUpdateFrame = Engine::FrameCount;
_lastMinDstSqr = MAX_float; _lastMinDstSqr = MAX_float;
ParticleManager::UpdateEffect(this); Particles::UpdateEffect(this);
} }
void ParticleEffect::UpdateBounds() void ParticleEffect::UpdateBounds()
@@ -493,7 +493,7 @@ bool ParticleEffect::HasContentLoaded() const
void ParticleEffect::Draw(RenderContext& renderContext) void ParticleEffect::Draw(RenderContext& renderContext)
{ {
_lastMinDstSqr = Math::Min(_lastMinDstSqr, Vector3::DistanceSquared(GetPosition(), renderContext.View.Position)); _lastMinDstSqr = Math::Min(_lastMinDstSqr, Vector3::DistanceSquared(GetPosition(), renderContext.View.Position));
ParticleManager::DrawParticles(renderContext, this); Particles::DrawParticles(renderContext, this);
} }
void ParticleEffect::DrawGeneric(RenderContext& renderContext) void ParticleEffect::DrawGeneric(RenderContext& renderContext)
@@ -679,7 +679,7 @@ void ParticleEffect::Deserialize(DeserializeStream& stream, ISerializeModifier*
void ParticleEffect::EndPlay() void ParticleEffect::EndPlay()
{ {
CacheModifiedParameters(); CacheModifiedParameters();
ParticleManager::OnEffectDestroy(this); Particles::OnEffectDestroy(this);
Instance.ClearState(); Instance.ClearState();
_parameters.Clear(); _parameters.Clear();
_parametersVersion = 0; _parametersVersion = 0;

View File

@@ -1,9 +1,9 @@
// Copyright (c) 2012-2021 Wojciech Figat. All rights reserved. // Copyright (c) 2012-2021 Wojciech Figat. All rights reserved.
#include "ParticleEmitter.h" #include "ParticleEmitter.h"
#include "ParticleManager.h"
#include "ParticleSystem.h" #include "ParticleSystem.h"
#include "ParticleEffect.h" #include "ParticleEffect.h"
#include "Particles.h"
#include "Engine/Content/Factories/BinaryAssetFactory.h" #include "Engine/Content/Factories/BinaryAssetFactory.h"
#include "Engine/Content/Upgraders/ShaderAssetUpgrader.h" #include "Engine/Content/Upgraders/ShaderAssetUpgrader.h"
#include "Engine/Core/Log.h" #include "Engine/Core/Log.h"
@@ -287,7 +287,7 @@ void ParticleEmitter::unload(bool isReloading)
UnregisterForShaderReloads(this); UnregisterForShaderReloads(this);
#endif #endif
ParticleManager::OnEmitterUnload(this); Particles::OnEmitterUnload(this);
Graph.Clear(); Graph.Clear();
#if COMPILE_WITH_GPU_PARTICLES #if COMPILE_WITH_GPU_PARTICLES

View File

@@ -1,6 +1,6 @@
// Copyright (c) 2012-2021 Wojciech Figat. All rights reserved. // Copyright (c) 2012-2021 Wojciech Figat. All rights reserved.
#include "ParticleManager.h" #include "Particles.h"
#include "Engine/Content/Assets/Model.h" #include "Engine/Content/Assets/Model.h"
#include "Engine/Core/Collections/Sorting.h" #include "Engine/Core/Collections/Sorting.h"
#include "Engine/Core/Collections/HashSet.h" #include "Engine/Core/Collections/HashSet.h"
@@ -112,8 +112,8 @@ namespace ParticleManagerImpl
using namespace ParticleManagerImpl; using namespace ParticleManagerImpl;
bool ParticleManager::EnableParticleBufferPooling = true; bool Particles::EnableParticleBufferPooling = true;
float ParticleManager::ParticleBufferRecycleTimeout = 10.0f; float Particles::ParticleBufferRecycleTimeout = 10.0f;
SpriteParticleRenderer SpriteRenderer; SpriteParticleRenderer SpriteRenderer;
@@ -155,12 +155,12 @@ public:
ParticleManagerService ParticleManagerServiceInstance; ParticleManagerService ParticleManagerServiceInstance;
void ParticleManager::UpdateEffect(ParticleEffect* effect) void Particles::UpdateEffect(ParticleEffect* effect)
{ {
UpdateList.Add(effect); UpdateList.Add(effect);
} }
void ParticleManager::OnEffectDestroy(ParticleEffect* effect) void Particles::OnEffectDestroy(ParticleEffect* effect)
{ {
UpdateList.Remove(effect); UpdateList.Remove(effect);
#if COMPILE_WITH_GPU_PARTICLES #if COMPILE_WITH_GPU_PARTICLES
@@ -895,7 +895,7 @@ void DrawEmitterGPU(RenderContext& renderContext, ParticleBuffer* buffer, DrawCa
#endif #endif
void ParticleManager::DrawParticles(RenderContext& renderContext, ParticleEffect* effect) void Particles::DrawParticles(RenderContext& renderContext, ParticleEffect* effect)
{ {
// Setup // Setup
auto& view = renderContext.View; auto& view = renderContext.View;
@@ -1066,7 +1066,7 @@ void UpdateGPU(RenderTask* task, GPUContext* context)
#endif #endif
ParticleBuffer* ParticleManager::AcquireParticleBuffer(ParticleEmitter* emitter) ParticleBuffer* Particles::AcquireParticleBuffer(ParticleEmitter* emitter)
{ {
ParticleBuffer* result = nullptr; ParticleBuffer* result = nullptr;
ASSERT(emitter && emitter->IsLoaded()); ASSERT(emitter && emitter->IsLoaded());
@@ -1118,7 +1118,7 @@ ParticleBuffer* ParticleManager::AcquireParticleBuffer(ParticleEmitter* emitter)
return result; return result;
} }
void ParticleManager::RecycleParticleBuffer(ParticleBuffer* buffer) void Particles::RecycleParticleBuffer(ParticleBuffer* buffer)
{ {
if (buffer->Emitter->EnablePooling && EnableParticleBufferPooling) if (buffer->Emitter->EnablePooling && EnableParticleBufferPooling)
{ {
@@ -1138,7 +1138,7 @@ void ParticleManager::RecycleParticleBuffer(ParticleBuffer* buffer)
} }
} }
void ParticleManager::OnEmitterUnload(ParticleEmitter* emitter) void Particles::OnEmitterUnload(ParticleEmitter* emitter)
{ {
PoolLocker.Lock(); PoolLocker.Lock();
const auto entries = Pool.TryGet(emitter); const auto entries = Pool.TryGet(emitter);
@@ -1262,7 +1262,7 @@ void ParticleManagerService::Update()
{ {
if (emitterInstance.Buffer) if (emitterInstance.Buffer)
{ {
ParticleManager::RecycleParticleBuffer(emitterInstance.Buffer); Particles::RecycleParticleBuffer(emitterInstance.Buffer);
emitterInstance.Buffer = nullptr; emitterInstance.Buffer = nullptr;
} }
} }
@@ -1291,7 +1291,7 @@ void ParticleManagerService::Update()
data.Sync(effect->Instance, particleSystem, track.AsEmitter.Index); data.Sync(effect->Instance, particleSystem, track.AsEmitter.Index);
if (!data.Buffer) if (!data.Buffer)
{ {
data.Buffer = ParticleManager::AcquireParticleBuffer(emitter); data.Buffer = Particles::AcquireParticleBuffer(emitter);
} }
data.Time += dt; data.Time += dt;
@@ -1355,7 +1355,7 @@ void ParticleManagerService::Update()
for (int32 j = 0; j < entries.Count(); j++) for (int32 j = 0; j < entries.Count(); j++)
{ {
auto& e = entries[j]; auto& e = entries[j];
if (timeSeconds - e.LastTimeUsed >= ParticleManager::ParticleBufferRecycleTimeout) if (timeSeconds - e.LastTimeUsed >= Particles::ParticleBufferRecycleTimeout)
{ {
Delete(e.Buffer); Delete(e.Buffer);
entries.RemoveAt(j--); entries.RemoveAt(j--);

View File

@@ -15,7 +15,7 @@ class Actor;
/// <summary> /// <summary>
/// The particles service used for simulation and emitters data pooling. /// The particles service used for simulation and emitters data pooling.
/// </summary> /// </summary>
class FLAXENGINE_API ParticleManager class FLAXENGINE_API Particles
{ {
public: public:

View File

@@ -14,7 +14,7 @@
#define PARTICLE_EMITTER_MAX_RIBBONS 4 #define PARTICLE_EMITTER_MAX_RIBBONS 4
class ParticleEmitter; class ParticleEmitter;
class ParticleManager; class Particles;
class GPUBuffer; class GPUBuffer;
class DynamicIndexBuffer; class DynamicIndexBuffer;

View File

@@ -1,9 +1,9 @@
// Copyright (c) 2012-2021 Wojciech Figat. All rights reserved. // Copyright (c) 2012-2021 Wojciech Figat. All rights reserved.
#include "ParticlesSimulation.h" #include "ParticlesSimulation.h"
#include "ParticleManager.h"
#include "ParticleSystem.h" #include "ParticleSystem.h"
#include "ParticleEmitter.h" #include "ParticleEmitter.h"
#include "Particles.h"
#include "Engine/Graphics/GPUBuffer.h" #include "Engine/Graphics/GPUBuffer.h"
#include "Engine/Graphics/GPUDevice.h" #include "Engine/Graphics/GPUDevice.h"
@@ -15,7 +15,7 @@ ParticleEmitterInstance::~ParticleEmitterInstance()
{ {
if (Buffer) if (Buffer)
{ {
ParticleManager::RecycleParticleBuffer(Buffer); Particles::RecycleParticleBuffer(Buffer);
} }
} }
@@ -30,7 +30,7 @@ void ParticleEmitterInstance::ClearState()
#endif #endif
if (Buffer) if (Buffer)
{ {
ParticleManager::RecycleParticleBuffer(Buffer); Particles::RecycleParticleBuffer(Buffer);
Buffer = nullptr; Buffer = nullptr;
} }
} }
@@ -72,7 +72,7 @@ void ParticleEmitterInstance::Sync(ParticleSystemInstance& systemInstance, Parti
// Sync buffer version // Sync buffer version
if (Buffer && Buffer->Version != Version) if (Buffer && Buffer->Version != Version)
{ {
ParticleManager::RecycleParticleBuffer(Buffer); Particles::RecycleParticleBuffer(Buffer);
Buffer = nullptr; Buffer = nullptr;
} }
} }