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:
@@ -170,7 +170,7 @@ namespace OpenRA.Mods.Common.Graphics
|
||||
a *= -1;
|
||||
|
||||
wrsr.DrawSprite(renderProxy.ShadowSprite, sa, sb, sc, sd, t, a);
|
||||
wrsr.DrawSprite(renderProxy.Sprite, pxOrigin - 0.5f * renderProxy.Sprite.Size, renderProxy.Sprite.Size, t, a);
|
||||
wrsr.DrawSprite(renderProxy.Sprite, pxOrigin - 0.5f * renderProxy.Sprite.Size, 1f, t, a);
|
||||
}
|
||||
|
||||
public void RenderDebugGeometry(WorldRenderer wr)
|
||||
|
||||
@@ -98,7 +98,7 @@ namespace OpenRA.Mods.Common.Graphics
|
||||
var sb = pxOrigin + psb[2];
|
||||
var sc = pxOrigin + psb[1];
|
||||
var sd = pxOrigin + psb[3];
|
||||
Game.Renderer.RgbaSpriteRenderer.DrawSprite(renderProxy.ShadowSprite, sa, sb, sc, sd);
|
||||
Game.Renderer.RgbaSpriteRenderer.DrawSprite(renderProxy.ShadowSprite, sa, sb, sc, sd, float3.Ones, 1f);
|
||||
Game.Renderer.RgbaSpriteRenderer.DrawSprite(renderProxy.Sprite, pxOrigin - 0.5f * renderProxy.Sprite.Size);
|
||||
}
|
||||
|
||||
|
||||
@@ -77,9 +77,8 @@ namespace OpenRA.Mods.Common.Widgets
|
||||
cachedScale = scale;
|
||||
}
|
||||
|
||||
var size = new float2(sprite.Size.X * scale, sprite.Size.Y * scale);
|
||||
Game.Renderer.EnableAntialiasingFilter();
|
||||
Game.Renderer.SpriteRenderer.DrawSprite(sprite, RenderOrigin + offset, pr, size);
|
||||
Game.Renderer.SpriteRenderer.DrawSprite(sprite, pr, RenderOrigin + offset, scale);
|
||||
Game.Renderer.DisableAntialiasingFilter();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user