Avoid redundantly setting viewport parameters in BeginFrame.

- Cache the old resolution, scroll and zoom in BeginFrame, and don't bother updating the viewport parameters again until they change.
- Pass around scroll as an int2 to reduce the number of back-and-forth casts.
This commit is contained in:
RoosterDragon
2014-06-04 01:22:47 +01:00
parent 334a210231
commit a2ed4fd5f9
11 changed files with 40 additions and 22 deletions

View File

@@ -141,12 +141,12 @@ namespace OpenRA
// worldRenderer is null during the initial install/download screen
if (worldRenderer != null)
{
Renderer.BeginFrame(worldRenderer.Viewport.TopLeft.ToFloat2(), worldRenderer.Viewport.Zoom);
Renderer.BeginFrame(worldRenderer.Viewport.TopLeft, worldRenderer.Viewport.Zoom);
Sound.SetListenerPosition(worldRenderer.Position(worldRenderer.Viewport.CenterLocation));
worldRenderer.Draw();
}
else
Renderer.BeginFrame(float2.Zero, 1f);
Renderer.BeginFrame(int2.Zero, 1f);
using (new PerfSample("render_widgets"))
{