From 106816a547d886119bf631fb7ffa2b7b480f34ae Mon Sep 17 00:00:00 2001 From: RoosterDragon Date: Tue, 14 Apr 2015 00:58:40 +0100 Subject: [PATCH] Cache the IRenderModifier and IRender traits in Actor. Previously we just cached the query object, but now we cache the full results. This avoids having to re-evaluate them every render. --- OpenRA.Game/Actor.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OpenRA.Game/Actor.cs b/OpenRA.Game/Actor.cs index e1e29951d8..0cb4d73f1a 100644 --- a/OpenRA.Game/Actor.cs +++ b/OpenRA.Game/Actor.cs @@ -83,8 +83,8 @@ namespace OpenRA } } - readonly IEnumerable traitsImplementingRenderModifier; - readonly IEnumerable traitsImplementingRender; + readonly IRenderModifier[] traitsImplementingRenderModifier; + readonly IRender[] traitsImplementingRender; internal Actor(World world, string name, TypeDictionary initDict) { @@ -126,8 +126,8 @@ namespace OpenRA return new Rectangle(offset.X, offset.Y, size.X, size.Y); }); - traitsImplementingRenderModifier = TraitsImplementing(); - traitsImplementingRender = TraitsImplementing(); + traitsImplementingRenderModifier = TraitsImplementing().ToArray(); + traitsImplementingRender = TraitsImplementing().ToArray(); } public void Tick()