Clean up viewport internals.

This commit is contained in:
Paul Chote
2013-09-28 10:21:23 +12:00
parent 936bf98496
commit 919181e04d
13 changed files with 153 additions and 207 deletions

View File

@@ -45,7 +45,7 @@ namespace OpenRA.Graphics
internal WorldRenderer(World world)
{
this.world = world;
Viewport = new Viewport(world.Map.Bounds);
Viewport = new Viewport(this, world.Map);
palette = new HardwarePalette();
palettes = new Cache<string, PaletteReference>(CreatePaletteReference);
@@ -76,10 +76,7 @@ namespace OpenRA.Graphics
List<IRenderable> GenerateRenderables()
{
var comparer = new RenderableComparer(this);
var vb = Viewport.ViewBounds(world);
var tl = Viewport.ViewToWorldPx(new int2(vb.Left, vb.Top));
var br = Viewport.ViewToWorldPx(new int2(vb.Right, vb.Bottom));
var actors = world.ScreenMap.ActorsInBox(tl, br)
var actors = world.ScreenMap.ActorsInBox(Viewport.TopLeft, Viewport.BottomRight)
.Append(world.WorldActor)
.ToList();
@@ -117,7 +114,7 @@ namespace OpenRA.Graphics
return;
var renderables = GenerateRenderables();
var bounds = Viewport.ViewBounds(world);
var bounds = Viewport.ScissorBounds;
Game.Renderer.EnableScissor(bounds.Left, bounds.Top, bounds.Width, bounds.Height);
terrainRenderer.Draw(this, Viewport);