Refactor SceneRendering to simplify actors impl of drawing flow at high level

This commit is contained in:
Wojciech Figat
2022-02-22 17:06:19 +01:00
parent 8c075c78cb
commit 3fe1e2c763
43 changed files with 191 additions and 617 deletions

View File

@@ -312,7 +312,7 @@ void ParticleEffect::UpdateBounds()
_box = bounds;
BoundingSphere::FromBox(bounds, _sphere);
if (_sceneRenderingKey != -1)
GetSceneRendering()->UpdateGeometry(this, _sceneRenderingKey);
GetSceneRendering()->UpdateActor(this, _sceneRenderingKey);
}
void ParticleEffect::Sync()
@@ -498,11 +498,6 @@ void ParticleEffect::Draw(RenderContext& renderContext)
Particles::DrawParticles(renderContext, this);
}
void ParticleEffect::DrawGeneric(RenderContext& renderContext)
{
Draw(renderContext);
}
#if USE_EDITOR
#include "Engine/Debug/DebugDraw.h"
@@ -520,7 +515,7 @@ void ParticleEffect::OnDebugDrawSelected()
void ParticleEffect::OnLayerChanged()
{
if (_sceneRenderingKey != -1)
GetSceneRendering()->UpdateGeometry(this, _sceneRenderingKey);
GetSceneRendering()->UpdateActor(this, _sceneRenderingKey);
}
void ParticleEffect::Serialize(SerializeStream& stream, const void* otherObj)
@@ -699,7 +694,7 @@ void ParticleEffect::EndPlay()
void ParticleEffect::OnEnable()
{
GetScene()->Ticking.Update.AddTick<ParticleEffect, &ParticleEffect::Update>(this);
_sceneRenderingKey = GetSceneRendering()->AddGeometry(this);
_sceneRenderingKey = GetSceneRendering()->AddActor(this);
#if USE_EDITOR
GetSceneRendering()->AddViewportIcon(this);
GetScene()->Ticking.Update.AddTickExecuteInEditor<ParticleEffect, &ParticleEffect::UpdateExecuteInEditor>(this);
@@ -715,7 +710,7 @@ void ParticleEffect::OnDisable()
GetScene()->Ticking.Update.RemoveTickExecuteInEditor(this);
GetSceneRendering()->RemoveViewportIcon(this);
#endif
GetSceneRendering()->RemoveGeometry(this, _sceneRenderingKey);
GetSceneRendering()->RemoveActor(this, _sceneRenderingKey);
GetScene()->Ticking.Update.RemoveTick(this);
// Base