Optimize some code by manual inlining

This commit is contained in:
Wojtek Figat
2022-10-21 18:36:18 +02:00
parent b7b4391cff
commit 42d1f40b9c
6 changed files with 42 additions and 54 deletions

View File

@@ -41,12 +41,26 @@ void SceneRendering::Draw(RenderContext& renderContext)
{
for (int32 i = 0; i < Actors.Count(); i++)
{
auto e = Actors[i];
auto e = Actors.Get()[i];
e.Bounds.Center -= origin;
if (view.RenderLayersMask.Mask & e.LayerMask && (e.NoCulling || frustum.Intersects(e.Bounds)) && e.Actor->GetStaticFlags() & view.StaticFlagsMask)
{
#if SCENE_RENDERING_USE_PROFILER
PROFILE_CPU_ACTOR(e.Actor);
#endif
e.Actor->Draw(renderContext);
}
}
}
else if (origin.IsZero())
{
for (int32 i = 0; i < Actors.Count(); i++)
{
auto e = Actors.Get()[i];
if (view.RenderLayersMask.Mask & e.LayerMask && (e.NoCulling || frustum.Intersects(e.Bounds)))
{
#if SCENE_RENDERING_USE_PROFILER
PROFILE_CPU_ACTOR(e.Actor);
#endif
e.Actor->Draw(renderContext);
}
@@ -56,7 +70,7 @@ void SceneRendering::Draw(RenderContext& renderContext)
{
for (int32 i = 0; i < Actors.Count(); i++)
{
auto e = Actors[i];
auto e = Actors.Get()[i];
e.Bounds.Center -= origin;
if (view.RenderLayersMask.Mask & e.LayerMask && (e.NoCulling || frustum.Intersects(e.Bounds)))
{