diff --git a/OpenRA.Game/Graphics/WorldRenderer.cs b/OpenRA.Game/Graphics/WorldRenderer.cs index a5e7715a4b..03fe839d06 100644 --- a/OpenRA.Game/Graphics/WorldRenderer.cs +++ b/OpenRA.Game/Graphics/WorldRenderer.cs @@ -100,7 +100,7 @@ namespace OpenRA.Graphics palettes[name].Palette = pal; } - List GenerateRenderables(IEnumerable actorsInBox) + List GenerateRenderables(HashSet actorsInBox) { var actors = actorsInBox.Append(World.WorldActor); if (World.RenderPlayer != null) @@ -126,7 +126,7 @@ namespace OpenRA.Graphics return renderables; } - List GenerateOverlayRenderables(IEnumerable actorsInBox) + List GenerateOverlayRenderables(HashSet actorsInBox) { var aboveShroud = World.ActorsWithTrait() .Where(a => a.Actor.IsInWorld && !a.Actor.Disposed && (!a.Trait.SpatiallyPartitionable || actorsInBox.Contains(a.Actor))) @@ -171,7 +171,7 @@ namespace OpenRA.Graphics RefreshPalette(); - var onScreenActors = World.ScreenMap.RenderableActorsInBox(Viewport.TopLeft, Viewport.BottomRight); + var onScreenActors = World.ScreenMap.RenderableActorsInBox(Viewport.TopLeft, Viewport.BottomRight).ToHashSet(); var renderables = GenerateRenderables(onScreenActors); var bounds = Viewport.GetScissorBounds(World.Type != WorldType.Editor); Game.Renderer.EnableScissor(bounds);