Rework WidgetUtil sprite rendering helpers.

This commit is contained in:
Paul Chote
2021-07-22 21:43:14 +01:00
committed by reaperrr
parent 2e6f444285
commit 8e94e1d5ec
21 changed files with 54 additions and 53 deletions

View File

@@ -40,7 +40,7 @@ namespace OpenRA.Mods.Common.Widgets
var icon = playerDatabase.GetIcon(Badge); var icon = playerDatabase.GetIcon(Badge);
if (icon != null) if (icon != null)
Game.Renderer.RgbaSpriteRenderer.DrawSprite(icon, RenderOrigin); WidgetUtils.DrawSprite(icon, RenderOrigin);
} }
} }
} }

View File

@@ -75,7 +75,7 @@ namespace OpenRA.Mods.Common.Widgets
checkType += "-disabled"; checkType += "-disabled";
var offset = new float2(rect.Left + CheckOffset, rect.Top + CheckOffset); var offset = new float2(rect.Left + CheckOffset, rect.Top + CheckOffset);
WidgetUtils.DrawRGBA(ChromeProvider.GetImage("checkbox-bits", checkType), offset); WidgetUtils.DrawSprite(ChromeProvider.GetImage("checkbox-bits", checkType), offset);
} }
} }

View File

@@ -89,12 +89,12 @@ namespace OpenRA.Mods.Common.Widgets
public override void Draw() public override void Draw()
{ {
Game.Renderer.RgbaSpriteRenderer.DrawSprite(mixerSprite, RenderOrigin, new float2(RenderBounds.Size)); WidgetUtils.DrawSprite(mixerSprite, RenderOrigin, RenderBounds.Size);
var sprite = ChromeProvider.GetImage("lobby-bits", "colorpicker"); var sprite = ChromeProvider.GetImage("lobby-bits", "colorpicker");
var pos = RenderOrigin + PxFromValue() - new int2((int)sprite.Size.X, (int)sprite.Size.Y) / 2; var pos = RenderOrigin + PxFromValue() - new int2((int)sprite.Size.X, (int)sprite.Size.Y) / 2;
WidgetUtils.FillEllipseWithColor(new Rectangle(pos.X + 1, pos.Y + 1, (int)sprite.Size.X - 2, (int)sprite.Size.Y - 2), Color); WidgetUtils.FillEllipseWithColor(new Rectangle(pos.X + 1, pos.Y + 1, (int)sprite.Size.X - 2, (int)sprite.Size.Y - 2), Color);
Game.Renderer.RgbaSpriteRenderer.DrawSprite(sprite, pos); WidgetUtils.DrawSprite(sprite, pos);
} }
void SetValueFromPx(int2 xy) void SetValueFromPx(int2 xy)

View File

@@ -61,11 +61,11 @@ namespace OpenRA.Mods.Common.Widgets
var isHover = Ui.MouseOverWidget == this || Children.Any(c => c == Ui.MouseOverWidget); var isHover = Ui.MouseOverWidget == this || Children.Any(c => c == Ui.MouseOverWidget);
var arrowImage = getMarkerImage.Update((isDisabled, Depressed, isHover, false)); var arrowImage = getMarkerImage.Update((isDisabled, Depressed, isHover, false));
WidgetUtils.DrawRGBA(arrowImage, stateOffset + new float2(rb.Right - (int)((rb.Height + arrowImage.Size.X) / 2), rb.Top + (int)((rb.Height - arrowImage.Size.Y) / 2))); WidgetUtils.DrawSprite(arrowImage, stateOffset + new float2(rb.Right - (int)((rb.Height + arrowImage.Size.X) / 2), rb.Top + (int)((rb.Height - arrowImage.Size.Y) / 2)));
var separatorImage = getSeparatorImage.Update((isDisabled, Depressed, isHover, false)); var separatorImage = getSeparatorImage.Update((isDisabled, Depressed, isHover, false));
if (separatorImage != null) if (separatorImage != null)
WidgetUtils.DrawRGBA(separatorImage, stateOffset + new float2(-3, 0) + new float2(rb.Right - rb.Height + 4, rb.Top + (int)((rb.Height - separatorImage.Size.Y) / 2))); WidgetUtils.DrawSprite(separatorImage, stateOffset + new float2(-3, 0) + new float2(rb.Right - rb.Height + 4, rb.Top + (int)((rb.Height - separatorImage.Size.Y) / 2)));
} }
public override Widget Clone() { return new DropDownButtonWidget(this); } public override Widget Clone() { return new DropDownButtonWidget(this); }

View File

@@ -67,7 +67,7 @@ namespace OpenRA.Mods.Common.Widgets
if (sprite == null) if (sprite == null)
throw new ArgumentException($"Sprite {collection}/{name} was not found."); throw new ArgumentException($"Sprite {collection}/{name} was not found.");
WidgetUtils.DrawRGBA(sprite, RenderOrigin); WidgetUtils.DrawSprite(sprite, RenderOrigin);
} }
public override bool HandleMouseInput(MouseInput mi) public override bool HandleMouseInput(MouseInput mi)

View File

@@ -181,7 +181,7 @@ namespace OpenRA.Mods.Common.Widgets
var y = RenderBounds.Y + (RenderBounds.Height - h) / 2; var y = RenderBounds.Y + (RenderBounds.Height - h) / 2;
mapRect = new Rectangle(x, y, w, h); mapRect = new Rectangle(x, y, w, h);
Game.Renderer.RgbaSpriteRenderer.DrawSprite(minimap, new float2(mapRect.Location), new float2(mapRect.Size)); WidgetUtils.DrawSprite(minimap, mapRect.Location, mapRect.Size);
TooltipSpawnIndex = -1; TooltipSpawnIndex = -1;
if (ShowSpawnPoints) if (ShowSpawnPoints)
@@ -207,14 +207,14 @@ namespace OpenRA.Mods.Common.Widgets
if (disabled) if (disabled)
{ {
Game.Renderer.RgbaSpriteRenderer.DrawSprite(spawnDisabled, pos - offset); WidgetUtils.DrawSprite(spawnDisabled, pos - offset);
continue; continue;
} }
if (occupied) if (occupied)
WidgetUtils.FillEllipseWithColor(new Rectangle(pos.X - offset.X + 1, pos.Y - offset.Y + 1, (int)sprite.Size.X - 2, (int)sprite.Size.Y - 2), occupant.Color); WidgetUtils.FillEllipseWithColor(new Rectangle(pos.X - offset.X + 1, pos.Y - offset.Y + 1, (int)sprite.Size.X - 2, (int)sprite.Size.Y - 2), occupant.Color);
Game.Renderer.RgbaSpriteRenderer.DrawSprite(sprite, pos - offset); WidgetUtils.DrawSprite(sprite, pos - offset);
var number = Convert.ToChar('A' + spawnPoints.IndexOf(p)).ToString(); var number = Convert.ToChar('A' + spawnPoints.IndexOf(p)).ToString();
var textOffset = spawnFont.Measure(number) / 2 + spawnLabelOffset; var textOffset = spawnFont.Measure(number) / 2 + spawnLabelOffset;

View File

@@ -40,7 +40,7 @@ namespace OpenRA.Mods.Common.Widgets
// Cursor is rendered in native window coordinates // Cursor is rendered in native window coordinates
// Apply same scaling rules as hardware cursors // Apply same scaling rules as hardware cursors
var scale = (graphicSettings.CursorDouble ? 2 : 1) * (Game.Renderer.NativeWindowScale > 1.5f ? 2 : 1); var scale = (graphicSettings.CursorDouble ? 2 : 1) * (Game.Renderer.NativeWindowScale > 1.5f ? 2 : 1);
WidgetUtils.DrawSHPCentered(sprite, ChildOrigin, directionPalette, scale / Game.Renderer.WindowScale); WidgetUtils.DrawSpriteCentered(sprite, directionPalette, ChildOrigin, scale / Game.Renderer.WindowScale);
} }
} }

View File

@@ -108,7 +108,7 @@ namespace OpenRA.Mods.Common.Widgets
var centerPosition = iconTopLeft; var centerPosition = iconTopLeft;
var palette = unit.IconPaletteIsPlayerPalette ? unit.IconPalette + player.InternalName : unit.IconPalette; var palette = unit.IconPaletteIsPlayerPalette ? unit.IconPalette + player.InternalName : unit.IconPalette;
WidgetUtils.DrawSHPCentered(icon.Image, centerPosition + 0.5f * iconSize, worldRenderer.Palette(palette), 0.5f); WidgetUtils.DrawSpriteCentered(icon.Image, worldRenderer.Palette(palette), centerPosition + 0.5f * iconSize, 0.5f);
armyIcons.Add(new ArmyIcon armyIcons.Add(new ArmyIcon
{ {

View File

@@ -144,7 +144,7 @@ namespace OpenRA.Mods.Common.Widgets
var centerPosition = iconTopLeft + 0.5f * iconSize; var centerPosition = iconTopLeft + 0.5f * iconSize;
var palette = bi.IconPaletteIsPlayerPalette ? bi.IconPalette + player.InternalName : bi.IconPalette; var palette = bi.IconPaletteIsPlayerPalette ? bi.IconPalette + player.InternalName : bi.IconPalette;
WidgetUtils.DrawSHPCentered(icon.Image, centerPosition, worldRenderer.Palette(palette), 0.5f); WidgetUtils.DrawSpriteCentered(icon.Image, worldRenderer.Palette(palette), centerPosition, 0.5f);
var rect = new Rectangle((int)iconTopLeft.X, (int)iconTopLeft.Y, (int)iconSize.X, (int)iconSize.Y); var rect = new Rectangle((int)iconTopLeft.X, (int)iconTopLeft.Y, (int)iconSize.X, (int)iconSize.Y);
productionIcons.Add(new ProductionIcon productionIcons.Add(new ProductionIcon
@@ -161,15 +161,15 @@ namespace OpenRA.Mods.Common.Widgets
.FirstOrDefault(p => p.IsOverlayActive(actor)); .FirstOrDefault(p => p.IsOverlayActive(actor));
if (pio != null) if (pio != null)
WidgetUtils.DrawSHPCentered(pio.Sprite, centerPosition + pio.Offset(iconSize), WidgetUtils.DrawSpriteCentered(pio.Sprite, worldRenderer.Palette(pio.Palette),
worldRenderer.Palette(pio.Palette), 0.5f); centerPosition + pio.Offset(iconSize), 0.5f);
var clock = clocks[queue]; var clock = clocks[queue];
clock.PlayFetchIndex(ClockSequence, () => current.TotalTime == 0 ? 0 : clock.PlayFetchIndex(ClockSequence, () => current.TotalTime == 0 ? 0 :
(current.TotalTime - current.RemainingTime) * (clock.CurrentSequence.Length - 1) / current.TotalTime); (current.TotalTime - current.RemainingTime) * (clock.CurrentSequence.Length - 1) / current.TotalTime);
clock.Tick(); clock.Tick();
WidgetUtils.DrawSHPCentered(clock.Image, centerPosition, worldRenderer.Palette(ClockPalette), 0.5f); WidgetUtils.DrawSpriteCentered(clock.Image, worldRenderer.Palette(ClockPalette), centerPosition, 0.5f);
queueCol++; queueCol++;
} }

View File

@@ -124,14 +124,14 @@ namespace OpenRA.Mods.Common.Widgets
supportPowerIconsIcons.Add(new SupportPowersWidget.SupportPowerIcon { Power = item, Pos = location }); supportPowerIconsIcons.Add(new SupportPowersWidget.SupportPowerIcon { Power = item, Pos = location });
supportPowerIconsBounds.Add(new Rectangle((int)location.X, (int)location.Y, (int)iconSize.X, (int)iconSize.Y)); supportPowerIconsBounds.Add(new Rectangle((int)location.X, (int)location.Y, (int)iconSize.X, (int)iconSize.Y));
WidgetUtils.DrawSHPCentered(icon.Image, location + 0.5f * iconSize, worldRenderer.Palette(item.Info.IconPalette), 0.5f); WidgetUtils.DrawSpriteCentered(icon.Image, worldRenderer.Palette(item.Info.IconPalette), location + 0.5f * iconSize, 0.5f);
var clock = clocks[power.a.Key]; var clock = clocks[power.a.Key];
clock.PlayFetchIndex(ClockSequence, clock.PlayFetchIndex(ClockSequence,
() => item.TotalTicks == 0 ? 0 : ((item.TotalTicks - item.RemainingTicks) () => item.TotalTicks == 0 ? 0 : ((item.TotalTicks - item.RemainingTicks)
* (clock.CurrentSequence.Length - 1) / item.TotalTicks)); * (clock.CurrentSequence.Length - 1) / item.TotalTicks));
clock.Tick(); clock.Tick();
WidgetUtils.DrawSHPCentered(clock.Image, location + 0.5f * iconSize, worldRenderer.Palette(ClockPalette), 0.5f); WidgetUtils.DrawSpriteCentered(clock.Image, worldRenderer.Palette(ClockPalette), location + 0.5f * iconSize, 0.5f);
} }
Game.Renderer.DisableAntialiasingFilter(); Game.Renderer.DisableAntialiasingFilter();

View File

@@ -499,12 +499,12 @@ namespace OpenRA.Mods.Common.Widgets
Game.Renderer.EnableAntialiasingFilter(); Game.Renderer.EnableAntialiasingFilter();
foreach (var icon in icons.Values) foreach (var icon in icons.Values)
{ {
WidgetUtils.DrawSHPCentered(icon.Sprite, icon.Pos + iconOffset, icon.Palette); WidgetUtils.DrawSpriteCentered(icon.Sprite, icon.Palette, icon.Pos + iconOffset);
// Draw the ProductionIconOverlay's sprite // Draw the ProductionIconOverlay's sprite
var pio = pios.FirstOrDefault(p => p.IsOverlayActive(icon.Actor)); var pio = pios.FirstOrDefault(p => p.IsOverlayActive(icon.Actor));
if (pio != null) if (pio != null)
WidgetUtils.DrawSHPCentered(pio.Sprite, icon.Pos + iconOffset + pio.Offset(IconSize), worldRenderer.Palette(pio.Palette), 1f); WidgetUtils.DrawSpriteCentered(pio.Sprite, worldRenderer.Palette(pio.Palette), icon.Pos + iconOffset + pio.Offset(IconSize));
// Build progress // Build progress
if (icon.Queued.Count > 0) if (icon.Queued.Count > 0)
@@ -515,10 +515,10 @@ namespace OpenRA.Mods.Common.Widgets
* (clock.CurrentSequence.Length - 1) / first.TotalTime); * (clock.CurrentSequence.Length - 1) / first.TotalTime);
clock.Tick(); clock.Tick();
WidgetUtils.DrawSHPCentered(clock.Image, icon.Pos + iconOffset, icon.IconClockPalette); WidgetUtils.DrawSpriteCentered(clock.Image, icon.IconClockPalette, icon.Pos + iconOffset);
} }
else if (!buildableItems.Any(a => a.Name == icon.Name)) else if (!buildableItems.Any(a => a.Name == icon.Name))
WidgetUtils.DrawSHPCentered(cantBuild.Image, icon.Pos + iconOffset, icon.IconDarkenPalette); WidgetUtils.DrawSpriteCentered(cantBuild.Image, icon.IconDarkenPalette, icon.Pos + iconOffset);
} }
Game.Renderer.DisableAntialiasingFilter(); Game.Renderer.DisableAntialiasingFilter();

View File

@@ -194,11 +194,11 @@ namespace OpenRA.Mods.Common.Widgets
ButtonWidget.DrawBackground(Button, rightButtonRect, rightDisabled, rightPressed, rightHover, false); ButtonWidget.DrawBackground(Button, rightButtonRect, rightDisabled, rightPressed, rightHover, false);
var leftArrowImage = getLeftArrowImage.Update((leftDisabled, leftPressed, leftHover, false)); var leftArrowImage = getLeftArrowImage.Update((leftDisabled, leftPressed, leftHover, false));
WidgetUtils.DrawRGBA(leftArrowImage, WidgetUtils.DrawSprite(leftArrowImage,
new float2(leftButtonRect.Left + 2, leftButtonRect.Top + 2)); new float2(leftButtonRect.Left + 2, leftButtonRect.Top + 2));
var rightArrowImage = getRightArrowImage.Update((rightDisabled, rightPressed, rightHover, false)); var rightArrowImage = getRightArrowImage.Update((rightDisabled, rightPressed, rightHover, false));
WidgetUtils.DrawRGBA(rightArrowImage, WidgetUtils.DrawSprite(rightArrowImage,
new float2(rightButtonRect.Left + 2, rightButtonRect.Top + 2)); new float2(rightButtonRect.Left + 2, rightButtonRect.Top + 2));
// Draw tab buttons // Draw tab buttons

View File

@@ -33,7 +33,7 @@ namespace OpenRA.Mods.Common.Widgets
{ {
var sprite = GetSprite(); var sprite = GetSprite();
if (sprite != null) if (sprite != null)
Game.Renderer.RgbaSpriteRenderer.DrawSprite(sprite, RenderOrigin); WidgetUtils.DrawSprite(sprite, RenderOrigin);
} }
} }
} }

View File

@@ -339,12 +339,11 @@ namespace OpenRA.Mods.Common.Widgets
var o = new float2(mapRect.Location.X, mapRect.Location.Y + world.Map.Bounds.Height * previewScale * (1 - radarMinimapHeight) / 2); var o = new float2(mapRect.Location.X, mapRect.Location.Y + world.Map.Bounds.Height * previewScale * (1 - radarMinimapHeight) / 2);
var s = new float2(mapRect.Size.Width, mapRect.Size.Height * radarMinimapHeight); var s = new float2(mapRect.Size.Width, mapRect.Size.Height * radarMinimapHeight);
var rsr = Game.Renderer.RgbaSpriteRenderer; WidgetUtils.DrawSprite(terrainSprite, o, s);
rsr.DrawSprite(terrainSprite, o, s); WidgetUtils.DrawSprite(actorSprite, o, s);
rsr.DrawSprite(actorSprite, o, s);
if (shroud != null) if (shroud != null)
rsr.DrawSprite(shroudSprite, o, s); WidgetUtils.DrawSprite(shroudSprite, o, s);
// Draw viewport rect // Draw viewport rect
if (hasRadar) if (hasRadar)

View File

@@ -90,7 +90,7 @@ namespace OpenRA.Mods.Common.Widgets
var x = (b.Left + b.Right - indicator.Size.X) / 2; var x = (b.Left + b.Right - indicator.Size.X) / 2;
var y = float2.Lerp(b.Bottom, b.Top, usedFrac) - indicator.Size.Y / 2; var y = float2.Lerp(b.Bottom, b.Top, usedFrac) - indicator.Size.Y / 2;
Game.Renderer.RgbaSpriteRenderer.DrawSprite(indicator, new float2(x, y)); WidgetUtils.DrawSprite(indicator, new float2(x, y));
} }
else else
{ {
@@ -100,7 +100,7 @@ namespace OpenRA.Mods.Common.Widgets
var x = float2.Lerp(b.Left, b.Right, usedFrac) - indicator.Size.X / 2; var x = float2.Lerp(b.Left, b.Right, usedFrac) - indicator.Size.X / 2;
var y = (b.Bottom + b.Top - indicator.Size.Y) / 2; var y = (b.Bottom + b.Top - indicator.Size.Y) / 2;
Game.Renderer.RgbaSpriteRenderer.DrawSprite(indicator, new float2(x, y)); WidgetUtils.DrawSprite(indicator, new float2(x, y));
} }
} }
} }

View File

@@ -210,11 +210,11 @@ namespace OpenRA.Mods.Common.Widgets
var downOffset = !downPressed || downDisabled ? 4 : 4 + ButtonDepth; var downOffset = !downPressed || downDisabled ? 4 : 4 + ButtonDepth;
var upArrowImage = getUpArrowImage.Update((upDisabled, upPressed, upHover, false)); var upArrowImage = getUpArrowImage.Update((upDisabled, upPressed, upHover, false));
WidgetUtils.DrawRGBA(upArrowImage, WidgetUtils.DrawSprite(upArrowImage,
new float2(upButtonRect.Left + upOffset, upButtonRect.Top + upOffset)); new float2(upButtonRect.Left + upOffset, upButtonRect.Top + upOffset));
var downArrowImage = getDownArrowImage.Update((downDisabled, downPressed, downHover, false)); var downArrowImage = getDownArrowImage.Update((downDisabled, downPressed, downHover, false));
WidgetUtils.DrawRGBA(downArrowImage, WidgetUtils.DrawSprite(downArrowImage,
new float2(downButtonRect.Left + downOffset, downButtonRect.Top + downOffset)); new float2(downButtonRect.Left + downOffset, downButtonRect.Top + downOffset));
} }

View File

@@ -132,7 +132,7 @@ namespace OpenRA.Mods.Common.Widgets
trackOrigin + (i * (trackRect.Width - (int)tick.Size.X) / (Ticks - 1)) - tick.Size.X / 2, trackOrigin + (i * (trackRect.Width - (int)tick.Size.X) / (Ticks - 1)) - tick.Size.X / 2,
trackRect.Bottom); trackRect.Bottom);
WidgetUtils.DrawRGBA(tick, tickPos); WidgetUtils.DrawSprite(tick, tickPos);
} }
// Track // Track

View File

@@ -47,12 +47,12 @@ namespace OpenRA.Mods.Common.Widgets
foreach (var a in svc.AllPoints) foreach (var a in svc.AllPoints)
{ {
WidgetUtils.DrawRGBA(ChromeProvider.GetImage("strategic", "critical_unowned"), offset + new float2(rb.Left + curX, rb.Top)); WidgetUtils.DrawSprite(ChromeProvider.GetImage("strategic", "critical_unowned"), offset + new float2(rb.Left + curX, rb.Top));
if (world.LocalPlayer != null && a.Owner.RelationshipWith(world.LocalPlayer) == PlayerRelationship.Ally) if (world.LocalPlayer != null && a.Owner.RelationshipWith(world.LocalPlayer) == PlayerRelationship.Ally)
WidgetUtils.DrawRGBA(ChromeProvider.GetImage("strategic", "player_owned"), offset + new float2(rb.Left + curX, rb.Top)); WidgetUtils.DrawSprite(ChromeProvider.GetImage("strategic", "player_owned"), offset + new float2(rb.Left + curX, rb.Top));
else if (!a.Owner.NonCombatant) else if (!a.Owner.NonCombatant)
WidgetUtils.DrawRGBA(ChromeProvider.GetImage("strategic", "enemy_owned"), offset + new float2(rb.Left + curX, rb.Top)); WidgetUtils.DrawSprite(ChromeProvider.GetImage("strategic", "enemy_owned"), offset + new float2(rb.Left + curX, rb.Top));
curX += 32; curX += 32;
} }

View File

@@ -202,7 +202,7 @@ namespace OpenRA.Mods.Common.Widgets
Game.Renderer.EnableAntialiasingFilter(); Game.Renderer.EnableAntialiasingFilter();
foreach (var p in icons.Values) foreach (var p in icons.Values)
{ {
WidgetUtils.DrawSHPCentered(p.Sprite, p.Pos + iconOffset, p.Palette); WidgetUtils.DrawSpriteCentered(p.Sprite, p.Palette, p.Pos + iconOffset);
// Charge progress // Charge progress
var sp = p.Power; var sp = p.Power;
@@ -211,7 +211,7 @@ namespace OpenRA.Mods.Common.Widgets
* (clock.CurrentSequence.Length - 1) / sp.TotalTicks); * (clock.CurrentSequence.Length - 1) / sp.TotalTicks);
clock.Tick(); clock.Tick();
WidgetUtils.DrawSHPCentered(clock.Image, p.Pos + iconOffset, p.IconClockPalette); WidgetUtils.DrawSpriteCentered(clock.Image, p.IconClockPalette, p.Pos + iconOffset);
} }
Game.Renderer.DisableAntialiasingFilter(); Game.Renderer.DisableAntialiasingFilter();

View File

@@ -118,10 +118,7 @@ namespace OpenRA.Mods.Common.Widgets
Log.Write("perf", "VqaPlayer : {0} skipped {1} frames at position {2}", cachedVideo, skippedFrames, video.CurrentFrame); Log.Write("perf", "VqaPlayer : {0} skipped {1} frames at position {2}", cachedVideo, skippedFrames, video.CurrentFrame);
} }
Game.Renderer.RgbaSpriteRenderer.DrawSprite( WidgetUtils.DrawSprite(videoSprite, videoOrigin, videoSize);
videoSprite,
videoOrigin,
videoSize);
if (DrawOverlay) if (DrawOverlay)
{ {
@@ -161,7 +158,7 @@ namespace OpenRA.Mods.Common.Widgets
overlayScale = scale; overlayScale = scale;
} }
Game.Renderer.RgbaSpriteRenderer.DrawSprite(overlaySprite, overlayOrigin, overlaySize); WidgetUtils.DrawSprite(overlaySprite, overlayOrigin, overlaySize);
} }
} }

View File

@@ -41,17 +41,22 @@ namespace OpenRA.Mods.Common.Widgets
}); });
} }
public static void DrawRGBA(Sprite s, float2 pos) public static void DrawSprite(Sprite s, float2 pos)
{ {
Game.Renderer.RgbaSpriteRenderer.DrawSprite(s, pos); Game.Renderer.RgbaSpriteRenderer.DrawSprite(s, pos);
} }
public static void DrawSHPCentered(Sprite s, float2 pos, PaletteReference p) public static void DrawSprite(Sprite s, float2 pos, Size size)
{ {
Game.Renderer.SpriteRenderer.DrawSprite(s, pos - 0.5f * s.Size, p); Game.Renderer.RgbaSpriteRenderer.DrawSprite(s, pos, new float2(size));
} }
public static void DrawSHPCentered(Sprite s, float2 pos, PaletteReference p, float scale) public static void DrawSprite(Sprite s, float2 pos, float2 size)
{
Game.Renderer.RgbaSpriteRenderer.DrawSprite(s, pos, size);
}
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, pos - 0.5f * scale * s.Size, p, scale * s.Size);
} }
@@ -83,7 +88,7 @@ namespace OpenRA.Mods.Common.Widgets
ss = new Sprite(s.Sheet, rr, s.Channel, scale); ss = new Sprite(s.Sheet, rr, s.Channel, scale);
} }
DrawRGBA(ss, new float2(x, y)); DrawSprite(ss, new float2(x, y));
} }
} }
} }
@@ -165,19 +170,19 @@ namespace OpenRA.Mods.Common.Widgets
// Top-left corner // Top-left corner
if (sprites[0] != null) if (sprites[0] != null)
DrawRGBA(sprites[0], new float2(bounds.Left, bounds.Top)); DrawSprite(sprites[0], new float2(bounds.Left, bounds.Top));
// Top-right corner // Top-right corner
if (sprites[2] != null) if (sprites[2] != null)
DrawRGBA(sprites[2], new float2(bounds.Right - sprites[2].Size.X, bounds.Top)); DrawSprite(sprites[2], new float2(bounds.Right - sprites[2].Size.X, bounds.Top));
// Bottom-left corner // Bottom-left corner
if (sprites[6] != null) if (sprites[6] != null)
DrawRGBA(sprites[6], new float2(bounds.Left, bounds.Bottom - sprites[6].Size.Y)); DrawSprite(sprites[6], new float2(bounds.Left, bounds.Bottom - sprites[6].Size.Y));
// Bottom-right corner // Bottom-right corner
if (sprites[8] != null) if (sprites[8] != null)
DrawRGBA(sprites[8], new float2(bounds.Right - sprites[8].Size.X, bounds.Bottom - sprites[8].Size.Y)); DrawSprite(sprites[8], new float2(bounds.Right - sprites[8].Size.X, bounds.Bottom - sprites[8].Size.Y));
} }
public static string FormatTime(int ticks, int timestep) public static string FormatTime(int ticks, int timestep)