Introduce World and UI rendering phases.

This commit is contained in:
Paul Chote
2019-11-03 15:48:36 +00:00
committed by reaperrr
parent ebd1557523
commit e7de7b4c05
6 changed files with 48 additions and 26 deletions

View File

@@ -679,21 +679,18 @@ namespace OpenRA
}
// worldRenderer is null during the initial install/download screen
if (worldRenderer != null)
// World rendering is disabled while the loading screen is displayed
// Use worldRenderer.World instead of OrderManager.World to avoid a rendering mismatch while processing orders
if (worldRenderer != null && !worldRenderer.World.IsLoadingGameSave)
{
Renderer.BeginFrame(worldRenderer.Viewport.TopLeft, worldRenderer.Viewport.Zoom);
Renderer.BeginWorld(worldRenderer.Viewport.TopLeft, worldRenderer.Viewport.Zoom);
Sound.SetListenerPosition(worldRenderer.Viewport.CenterPosition);
// World rendering is disabled while the loading screen is displayed
// Use worldRenderer.World instead of OrderManager.World to avoid a rendering mismatch while processing orders
if (!worldRenderer.World.IsLoadingGameSave)
worldRenderer.Draw();
worldRenderer.Draw();
}
else
Renderer.BeginFrame(int2.Zero, 1f);
using (new PerfSample("render_widgets"))
{
Renderer.BeginUI();
Ui.Draw();
if (ModData != null && ModData.CursorProvider != null)