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.
This commit is contained in:
RoosterDragon
2015-04-14 00:58:40 +01:00
parent af1dfd3d17
commit 106816a547

View File

@@ -83,8 +83,8 @@ namespace OpenRA
}
}
readonly IEnumerable<IRenderModifier> traitsImplementingRenderModifier;
readonly IEnumerable<IRender> 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<IRenderModifier>();
traitsImplementingRender = TraitsImplementing<IRender>();
traitsImplementingRenderModifier = TraitsImplementing<IRenderModifier>().ToArray();
traitsImplementingRender = TraitsImplementing<IRender>().ToArray();
}
public void Tick()