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

@@ -103,9 +103,9 @@ namespace OpenRA.Graphics
}
}
public void SetViewportParams(Size screen, float zoom, float2 scroll)
public void SetViewportParams(Size screen, float zoom, int2 scroll)
{
shader.SetVec("Scroll", (int)scroll.X, (int)scroll.Y);
shader.SetVec("Scroll", scroll.X, scroll.Y);
shader.SetVec("r1", zoom*2f/screen.Width, -zoom*2f/screen.Height);
shader.SetVec("r2", -1, 1);
}