Fix rendering of custom actors lists in Editor viewports

This commit is contained in:
Wojtek Figat
2022-11-16 09:57:17 +01:00
parent 20661fc902
commit 16ebc72099
26 changed files with 118 additions and 178 deletions

View File

@@ -25,6 +25,7 @@ StaticModel::StaticModel(const SpawnParams& params)
, _vertexColorsDirty(false)
, _vertexColorsCount(0)
{
_drawCategory = SceneRendering::SceneDrawAsync;
Model.Changed.Bind<StaticModel, &StaticModel::OnModelChanged>(this);
Model.Loaded.Bind<StaticModel, &StaticModel::OnModelLoaded>(this);
}
@@ -173,7 +174,7 @@ void StaticModel::OnModelChanged()
if (Model && !Model->IsLoaded())
UpdateBounds();
else if (!Model && _sceneRenderingKey != -1)
GetSceneRendering()->RemoveActor(this, _sceneRenderingKey, SceneRendering::SceneDrawAsync);
GetSceneRendering()->RemoveActor(this, _sceneRenderingKey);
}
void StaticModel::OnModelLoaded()
@@ -190,7 +191,7 @@ void StaticModel::OnModelLoaded()
}
else
{
GetSceneRendering()->AddActor(this, _sceneRenderingKey, SceneRendering::SceneDrawAsync);
GetSceneRendering()->AddActor(this, _sceneRenderingKey);
}
}
}
@@ -199,7 +200,7 @@ void StaticModel::OnModelResidencyChanged()
{
if (_sceneRenderingKey == -1 && _scene && Model && Model->GetLoadedLODs() > 0 && _residencyChangedModel)
{
GetSceneRendering()->AddActor(this, _sceneRenderingKey, SceneRendering::SceneDrawAsync);
GetSceneRendering()->AddActor(this, _sceneRenderingKey);
_residencyChangedModel->ResidencyChanged.Unbind<StaticModel, &StaticModel::OnModelResidencyChanged>(this);
_residencyChangedModel = nullptr;
}
@@ -219,7 +220,7 @@ void StaticModel::UpdateBounds()
}
BoundingSphere::FromBox(_box, _sphere);
if (_sceneRenderingKey != -1)
GetSceneRendering()->UpdateActor(this, _sceneRenderingKey, SceneRendering::SceneDrawAsync);
GetSceneRendering()->UpdateActor(this, _sceneRenderingKey);
}
void StaticModel::FlushVertexColors()
@@ -561,7 +562,7 @@ void StaticModel::OnEnable()
}
else
{
GetSceneRendering()->AddActor(this, _sceneRenderingKey, SceneRendering::SceneDrawAsync);
GetSceneRendering()->AddActor(this, _sceneRenderingKey);
}
}
@@ -576,7 +577,7 @@ void StaticModel::OnDisable()
if (_sceneRenderingKey != -1)
{
GetSceneRendering()->RemoveActor(this, _sceneRenderingKey, SceneRendering::SceneDrawAsync);
GetSceneRendering()->RemoveActor(this, _sceneRenderingKey);
}
if (_residencyChangedModel)
{