tied into renderer

This commit is contained in:
Chris Forbes
2009-10-18 22:40:41 +13:00
parent 253e70f108
commit 4aea82712f
2 changed files with 30 additions and 17 deletions

View File

@@ -1,6 +1,8 @@
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using System.Windows.Forms;
using IjwFramework.Types;
using System.Collections.Generic;
namespace OpenRa.Game.Graphics
{
@@ -25,6 +27,25 @@ namespace OpenRa.Game.Graphics
spriteRenderer = new SpriteRenderer(renderer, true);
lineRenderer = new LineRenderer(renderer);
uiOverlay = new UiOverlay(spriteRenderer, game);
}
void DrawSpriteList(Player owner, RectangleF rect,
IEnumerable<Pair<Sprite, float2>> images)
{
foreach (var image in images)
{
var loc = image.Second;
if (loc.X > rect.Right || loc.X < rect.Left
- image.First.bounds.Width)
continue;
if (loc.Y > rect.Bottom || loc.Y < rect.Top
- image.First.bounds.Height)
continue;
spriteRenderer.DrawSprite(image.First, loc,
(owner != null) ? owner.Palette : 0);
}
}
public void Draw()
@@ -33,21 +54,10 @@ namespace OpenRa.Game.Graphics
region.Size.ToSizeF());
foreach (Actor a in game.world.Actors)
{
var images = a.Render();
foreach( var image in images )
{
var loc = image.Second;
if( loc.X > rect.Right || loc.X < rect.Left - image.First.bounds.Width )
continue;
if( loc.Y > rect.Bottom || loc.Y < rect.Top - image.First.bounds.Height )
continue;
spriteRenderer.DrawSprite( image.First, loc, ( a.Owner != null ) ? a.Owner.Palette : 0 );
}
}
DrawSpriteList(a.Owner, rect, a.Render());
foreach (Bullet b in game.world.Bullets)
DrawSpriteList(b.Owner, rect, b.Render());
uiOverlay.Draw();