Return IRenderable[] rather than IEnumerable<IRenderable> for animations.

Since some callers now know they have an array, then can enumerate it more efficiently and without allocating an enumerator.
This commit is contained in:
RoosterDragon
2018-03-10 18:10:29 +00:00
committed by abcdefg30
parent 65c42a68ce
commit f2e270ce06
3 changed files with 4 additions and 4 deletions

View File

@@ -53,7 +53,7 @@ namespace OpenRA.Graphics
public int CurrentFrame { get { return backwards ? CurrentSequence.Start + CurrentSequence.Length - frame - 1 : frame; } } public int CurrentFrame { get { return backwards ? CurrentSequence.Start + CurrentSequence.Length - frame - 1 : frame; } }
public Sprite Image { get { return CurrentSequence.GetSprite(CurrentFrame, facingFunc()); } } public Sprite Image { get { return CurrentSequence.GetSprite(CurrentFrame, facingFunc()); } }
public IEnumerable<IRenderable> Render(WPos pos, WVec offset, int zOffset, PaletteReference palette, float scale) public IRenderable[] Render(WPos pos, WVec offset, int zOffset, PaletteReference palette, float scale)
{ {
var imageRenderable = new SpriteRenderable(Image, pos, offset, CurrentSequence.ZOffset + zOffset, palette, scale, IsDecoration); var imageRenderable = new SpriteRenderable(Image, pos, offset, CurrentSequence.ZOffset + zOffset, palette, scale, IsDecoration);
@@ -78,7 +78,7 @@ namespace OpenRA.Graphics
xy.Y + (int)(cb.Bottom * scale)); xy.Y + (int)(cb.Bottom * scale));
} }
public IEnumerable<IRenderable> Render(WPos pos, PaletteReference palette) public IRenderable[] Render(WPos pos, PaletteReference palette)
{ {
return Render(pos, WVec.Zero, 0, palette, 1f); return Render(pos, WVec.Zero, 0, palette, 1f);
} }

View File

@@ -36,7 +36,7 @@ namespace OpenRA.Graphics
ZOffset = zOffset; ZOffset = zOffset;
} }
public IEnumerable<IRenderable> Render(Actor self, WorldRenderer wr, PaletteReference pal, float scale) public IRenderable[] Render(Actor self, WorldRenderer wr, PaletteReference pal, float scale)
{ {
var center = self.CenterPosition; var center = self.CenterPosition;
var offset = OffsetFunc != null ? OffsetFunc() : WVec.Zero; var offset = OffsetFunc != null ? OffsetFunc() : WVec.Zero;

View File

@@ -17,7 +17,7 @@ namespace OpenRA.Graphics
{ {
public struct SpriteRenderable : IRenderable, IFinalizedRenderable public struct SpriteRenderable : IRenderable, IFinalizedRenderable
{ {
public static readonly IEnumerable<IRenderable> None = new IRenderable[0].AsEnumerable(); public static readonly IEnumerable<IRenderable> None = new IRenderable[0];
readonly Sprite sprite; readonly Sprite sprite;
readonly WPos pos; readonly WPos pos;