Remove the now-unused ExploredBounds optimization.

This commit is contained in:
Paul Chote
2014-06-20 14:00:33 +12:00
parent 441971f6d7
commit 2a466d08c3
3 changed files with 2 additions and 61 deletions

View File

@@ -47,8 +47,6 @@ namespace OpenRA.Graphics
public int2 TopLeft { get { return CenterLocation - viewportSize / 2; } }
public int2 BottomRight { get { return CenterLocation + viewportSize / 2; } }
int2 viewportSize;
bool cellBoundsDirty = true;
CellRegion cells;
bool cellsDirty = true;
@@ -64,7 +62,6 @@ namespace OpenRA.Graphics
{
zoom = value;
viewportSize = (1f / zoom * new float2(Game.Renderer.Resolution)).ToInt2();
cellBoundsDirty = true;
cellsDirty = true;
}
}
@@ -115,7 +112,6 @@ namespace OpenRA.Graphics
public void Center(WPos pos)
{
CenterLocation = worldRenderer.ScreenPxPosition(pos).Clamp(mapBounds);
cellBoundsDirty = true;
cellsDirty = true;
}
@@ -123,7 +119,6 @@ namespace OpenRA.Graphics
{
// Convert scroll delta from world-px to viewport-px
CenterLocation += (1f / Zoom * delta).ToInt2();
cellBoundsDirty = true;
cellsDirty = true;
if (!ignoreBorders)
@@ -136,36 +131,14 @@ namespace OpenRA.Graphics
{
get
{
var r = CellBounds;
var ctl = new CPos(r.Left, r.Top).TopLeft;
var cbr = new CPos(r.Right, r.Bottom).TopLeft;
var ctl = VisibleCells.TopLeft.TopLeft;
var cbr = VisibleCells.BottomRight.BottomRight;
var tl = WorldToViewPx(worldRenderer.ScreenPxPosition(ctl)).Clamp(ScreenClip);
var br = WorldToViewPx(worldRenderer.ScreenPxPosition(cbr)).Clamp(ScreenClip);
return Rectangle.FromLTRB(tl.X, tl.Y, br.X, br.Y);
}
}
// Rectangle (in cell coords) of cells that are currently visible on the screen
Rectangle cachedRect;
public Rectangle CellBounds
{
get
{
if (cellBoundsDirty)
{
var boundary = new CVec(1, 1);
var tl = worldRenderer.Position(TopLeft).ToCPos() - boundary;
var br = worldRenderer.Position(BottomRight).ToCPos() + boundary;
cachedRect = Rectangle.Intersect(Rectangle.FromLTRB(tl.X, tl.Y, br.X, br.Y), worldRenderer.world.Map.Bounds);
cellBoundsDirty = false;
}
var b = worldRenderer.world.VisibleBounds;
return b.HasValue ? Rectangle.Intersect(cachedRect, b.Value) : cachedRect;
}
}
public CellRegion VisibleCells
{
get

View File

@@ -38,8 +38,6 @@ namespace OpenRA.Traits
Dictionary<Actor, CPos[]> visibility = new Dictionary<Actor, CPos[]>();
Dictionary<Actor, CPos[]> generation = new Dictionary<Actor, CPos[]>();
public Rectangle ExploredBounds { get; private set; }
public int Hash { get; private set; }
public Shroud(Actor self)
@@ -57,9 +55,6 @@ namespace OpenRA.Traits
self.World.ActorAdded += AddShroudGeneration;
self.World.ActorRemoved += RemoveShroudGeneration;
if (!self.World.LobbyInfo.GlobalSettings.Shroud)
ExploredBounds = map.Bounds;
fogVisibilities = Exts.Lazy(() => self.TraitsImplementing<IFogVisibilityModifier>().ToArray());
}
@@ -92,15 +87,6 @@ namespace OpenRA.Traits
var visible = origins.SelectMany(o => FindVisibleTiles(a.World, o, rs.Range))
.Distinct().ToArray();
// Update bounding rect
var r = (rs.Range.Range + 1023) / 1024;
foreach (var o in origins)
{
var box = new Rectangle(o.X - r, o.Y - r, 2 * r + 1, 2 * r + 1);
ExploredBounds = Rectangle.Union(ExploredBounds, box);
}
// Update visibility
foreach (var c in visible)
{
@@ -205,10 +191,6 @@ namespace OpenRA.Traits
foreach (var q in FindVisibleTiles(world, center, range))
explored[q] = true;
var r = (range.Range + 1023) / 1024;
var box = new Rectangle(center.X - r, center.Y - r, 2 * r + 1, 2 * r + 1);
ExploredBounds = Rectangle.Union(ExploredBounds, box);
Invalidate();
}
@@ -218,7 +200,6 @@ namespace OpenRA.Traits
if (s.explored[cell])
explored[cell] = true;
ExploredBounds = Rectangle.Union(ExploredBounds, s.ExploredBounds);
Invalidate();
}
@@ -226,8 +207,6 @@ namespace OpenRA.Traits
{
explored.Clear(true);
ExploredBounds = world.Map.Bounds;
Invalidate();
}

View File

@@ -55,17 +55,6 @@ namespace OpenRA
public bool ShroudObscures(Actor a) { return RenderPlayer != null && !RenderPlayer.Shroud.IsExplored(a); }
public bool ShroudObscures(CPos p) { return RenderPlayer != null && !RenderPlayer.Shroud.IsExplored(p); }
public Rectangle? VisibleBounds
{
get
{
if (RenderPlayer == null)
return null;
return RenderPlayer.Shroud.ExploredBounds;
}
}
public bool IsReplay
{
get { return orderManager.Connection is ReplayConnection; }