Change DrawSprite calls to provide scales instead of sizes.

This allows us to remove a hacky workaround for calculating
depth offsets when sprites have size.Z == 0.
This commit is contained in:
Paul Chote
2021-07-24 20:56:51 +01:00
committed by reaperrr
parent 8e94e1d5ec
commit 70892a6661
12 changed files with 46 additions and 64 deletions

View File

@@ -48,17 +48,19 @@ namespace OpenRA.Mods.Common.Widgets
public static void DrawSprite(Sprite s, float2 pos, Size size)
{
Game.Renderer.RgbaSpriteRenderer.DrawSprite(s, pos, new float2(size));
var scale = new float3(size.Width / s.Size.X, size.Height / s.Size.Y, 1f);
Game.Renderer.RgbaSpriteRenderer.DrawSprite(s, pos, scale);
}
public static void DrawSprite(Sprite s, float2 pos, float2 size)
{
Game.Renderer.RgbaSpriteRenderer.DrawSprite(s, pos, size);
var scale = new float3(size.X / s.Size.X, size.Y / s.Size.Y, 1f);
Game.Renderer.RgbaSpriteRenderer.DrawSprite(s, pos, scale);
}
public static void DrawSpriteCentered(Sprite s, PaletteReference p, float2 pos, float scale = 1f)
{
Game.Renderer.SpriteRenderer.DrawSprite(s, pos - 0.5f * scale * s.Size, p, scale * s.Size);
Game.Renderer.SpriteRenderer.DrawSprite(s, p, pos - 0.5f * scale * s.Size, scale);
}
public static void DrawPanel(string collection, Rectangle bounds)