determine which sprites to render during Render, not Tick
This commit is contained in:
@@ -143,7 +143,6 @@ namespace OpenRA
|
|||||||
});
|
});
|
||||||
|
|
||||||
world.Tick();
|
world.Tick();
|
||||||
worldRenderer.Tick();
|
|
||||||
|
|
||||||
PerfHistory.Tick();
|
PerfHistory.Tick();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,8 +70,7 @@ namespace OpenRA.Graphics
|
|||||||
return new Rectangle(0, 0, Game.viewport.Width, Game.viewport.Height);
|
return new Rectangle(0, 0, Game.viewport.Width, Game.viewport.Height);
|
||||||
}
|
}
|
||||||
|
|
||||||
Renderable[] worldSprites = { };
|
IEnumerable<Renderable> SpritesToRender()
|
||||||
public void Tick()
|
|
||||||
{
|
{
|
||||||
var bounds = GetBoundsRect();
|
var bounds = GetBoundsRect();
|
||||||
var comparer = new SpriteComparer();
|
var comparer = new SpriteComparer();
|
||||||
@@ -87,7 +86,7 @@ namespace OpenRA.Graphics
|
|||||||
|
|
||||||
var effects = world.Effects.SelectMany(e => e.Render());
|
var effects = world.Effects.SelectMany(e => e.Render());
|
||||||
|
|
||||||
worldSprites = renderables.Concat(effects).ToArray();
|
return renderables.Concat(effects);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Draw()
|
public void Draw()
|
||||||
@@ -101,7 +100,7 @@ namespace OpenRA.Graphics
|
|||||||
if (world.OrderGenerator != null)
|
if (world.OrderGenerator != null)
|
||||||
world.OrderGenerator.RenderBeforeWorld(this, world);
|
world.OrderGenerator.RenderBeforeWorld(this, world);
|
||||||
|
|
||||||
foreach( var image in worldSprites )
|
foreach( var image in SpritesToRender() )
|
||||||
image.Sprite.DrawAt( image.Pos, this.GetPaletteIndex( image.Palette ) );
|
image.Sprite.DrawAt( image.Pos, this.GetPaletteIndex( image.Palette ) );
|
||||||
uiOverlay.Draw(this, world);
|
uiOverlay.Draw(this, world);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user