From 8e94e1d5ecbac37e188eb86ac3d5cd132ab764d9 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Thu, 22 Jul 2021 21:43:14 +0100 Subject: [PATCH] Rework WidgetUtil sprite rendering helpers. --- OpenRA.Mods.Common/Widgets/BadgeWidget.cs | 2 +- OpenRA.Mods.Common/Widgets/CheckboxWidget.cs | 2 +- .../Widgets/ColorMixerWidget.cs | 4 ++-- .../Widgets/DropDownButtonWidget.cs | 4 ++-- OpenRA.Mods.Common/Widgets/ImageWidget.cs | 2 +- .../Widgets/MapPreviewWidget.cs | 6 ++--- .../Widgets/MouseAttachmentWidget.cs | 2 +- .../Widgets/ObserverArmyIconsWidget.cs | 2 +- .../Widgets/ObserverProductionIconsWidget.cs | 8 +++---- .../ObserverSupportPowerIconsWidget.cs | 4 ++-- .../Widgets/ProductionPaletteWidget.cs | 8 +++---- .../Widgets/ProductionTabsWidget.cs | 4 ++-- .../Widgets/RGBASpriteWidget.cs | 2 +- OpenRA.Mods.Common/Widgets/RadarWidget.cs | 7 +++--- .../Widgets/ResourceBarWidget.cs | 4 ++-- .../Widgets/ScrollPanelWidget.cs | 4 ++-- OpenRA.Mods.Common/Widgets/SliderWidget.cs | 2 +- .../Widgets/StrategicProgressWidget.cs | 6 ++--- .../Widgets/SupportPowersWidget.cs | 4 ++-- .../Widgets/VideoPlayerWidget.cs | 7 ++---- OpenRA.Mods.Common/Widgets/WidgetUtils.cs | 23 +++++++++++-------- 21 files changed, 54 insertions(+), 53 deletions(-) diff --git a/OpenRA.Mods.Common/Widgets/BadgeWidget.cs b/OpenRA.Mods.Common/Widgets/BadgeWidget.cs index a975dcd33f..63b53c07ca 100644 --- a/OpenRA.Mods.Common/Widgets/BadgeWidget.cs +++ b/OpenRA.Mods.Common/Widgets/BadgeWidget.cs @@ -40,7 +40,7 @@ namespace OpenRA.Mods.Common.Widgets var icon = playerDatabase.GetIcon(Badge); if (icon != null) - Game.Renderer.RgbaSpriteRenderer.DrawSprite(icon, RenderOrigin); + WidgetUtils.DrawSprite(icon, RenderOrigin); } } } diff --git a/OpenRA.Mods.Common/Widgets/CheckboxWidget.cs b/OpenRA.Mods.Common/Widgets/CheckboxWidget.cs index 13161a4dd8..e6dfec99d6 100644 --- a/OpenRA.Mods.Common/Widgets/CheckboxWidget.cs +++ b/OpenRA.Mods.Common/Widgets/CheckboxWidget.cs @@ -75,7 +75,7 @@ namespace OpenRA.Mods.Common.Widgets checkType += "-disabled"; 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); } } diff --git a/OpenRA.Mods.Common/Widgets/ColorMixerWidget.cs b/OpenRA.Mods.Common/Widgets/ColorMixerWidget.cs index 35d0bc8275..653b1c1ce1 100644 --- a/OpenRA.Mods.Common/Widgets/ColorMixerWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ColorMixerWidget.cs @@ -89,12 +89,12 @@ namespace OpenRA.Mods.Common.Widgets 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 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); - Game.Renderer.RgbaSpriteRenderer.DrawSprite(sprite, pos); + WidgetUtils.DrawSprite(sprite, pos); } void SetValueFromPx(int2 xy) diff --git a/OpenRA.Mods.Common/Widgets/DropDownButtonWidget.cs b/OpenRA.Mods.Common/Widgets/DropDownButtonWidget.cs index 1050420c19..2fc2e00219 100644 --- a/OpenRA.Mods.Common/Widgets/DropDownButtonWidget.cs +++ b/OpenRA.Mods.Common/Widgets/DropDownButtonWidget.cs @@ -61,11 +61,11 @@ namespace OpenRA.Mods.Common.Widgets var isHover = Ui.MouseOverWidget == this || Children.Any(c => c == Ui.MouseOverWidget); 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)); 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); } diff --git a/OpenRA.Mods.Common/Widgets/ImageWidget.cs b/OpenRA.Mods.Common/Widgets/ImageWidget.cs index 1eb83de6dd..f7c14b36f8 100644 --- a/OpenRA.Mods.Common/Widgets/ImageWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ImageWidget.cs @@ -67,7 +67,7 @@ namespace OpenRA.Mods.Common.Widgets if (sprite == null) throw new ArgumentException($"Sprite {collection}/{name} was not found."); - WidgetUtils.DrawRGBA(sprite, RenderOrigin); + WidgetUtils.DrawSprite(sprite, RenderOrigin); } public override bool HandleMouseInput(MouseInput mi) diff --git a/OpenRA.Mods.Common/Widgets/MapPreviewWidget.cs b/OpenRA.Mods.Common/Widgets/MapPreviewWidget.cs index 824b999006..9d1bf4217a 100644 --- a/OpenRA.Mods.Common/Widgets/MapPreviewWidget.cs +++ b/OpenRA.Mods.Common/Widgets/MapPreviewWidget.cs @@ -181,7 +181,7 @@ namespace OpenRA.Mods.Common.Widgets var y = RenderBounds.Y + (RenderBounds.Height - h) / 2; 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; if (ShowSpawnPoints) @@ -207,14 +207,14 @@ namespace OpenRA.Mods.Common.Widgets if (disabled) { - Game.Renderer.RgbaSpriteRenderer.DrawSprite(spawnDisabled, pos - offset); + WidgetUtils.DrawSprite(spawnDisabled, pos - offset); continue; } 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); - Game.Renderer.RgbaSpriteRenderer.DrawSprite(sprite, pos - offset); + WidgetUtils.DrawSprite(sprite, pos - offset); var number = Convert.ToChar('A' + spawnPoints.IndexOf(p)).ToString(); var textOffset = spawnFont.Measure(number) / 2 + spawnLabelOffset; diff --git a/OpenRA.Mods.Common/Widgets/MouseAttachmentWidget.cs b/OpenRA.Mods.Common/Widgets/MouseAttachmentWidget.cs index 29945e030c..6c09fae717 100644 --- a/OpenRA.Mods.Common/Widgets/MouseAttachmentWidget.cs +++ b/OpenRA.Mods.Common/Widgets/MouseAttachmentWidget.cs @@ -40,7 +40,7 @@ namespace OpenRA.Mods.Common.Widgets // Cursor is rendered in native window coordinates // Apply same scaling rules as hardware cursors 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); } } diff --git a/OpenRA.Mods.Common/Widgets/ObserverArmyIconsWidget.cs b/OpenRA.Mods.Common/Widgets/ObserverArmyIconsWidget.cs index 0b5fc11f23..a9e71bc1f3 100644 --- a/OpenRA.Mods.Common/Widgets/ObserverArmyIconsWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ObserverArmyIconsWidget.cs @@ -108,7 +108,7 @@ namespace OpenRA.Mods.Common.Widgets var centerPosition = iconTopLeft; 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 { diff --git a/OpenRA.Mods.Common/Widgets/ObserverProductionIconsWidget.cs b/OpenRA.Mods.Common/Widgets/ObserverProductionIconsWidget.cs index d11e581adf..740c05cc69 100644 --- a/OpenRA.Mods.Common/Widgets/ObserverProductionIconsWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ObserverProductionIconsWidget.cs @@ -144,7 +144,7 @@ namespace OpenRA.Mods.Common.Widgets var centerPosition = iconTopLeft + 0.5f * iconSize; 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); productionIcons.Add(new ProductionIcon @@ -161,15 +161,15 @@ namespace OpenRA.Mods.Common.Widgets .FirstOrDefault(p => p.IsOverlayActive(actor)); if (pio != null) - WidgetUtils.DrawSHPCentered(pio.Sprite, centerPosition + pio.Offset(iconSize), - worldRenderer.Palette(pio.Palette), 0.5f); + WidgetUtils.DrawSpriteCentered(pio.Sprite, worldRenderer.Palette(pio.Palette), + centerPosition + pio.Offset(iconSize), 0.5f); var clock = clocks[queue]; clock.PlayFetchIndex(ClockSequence, () => current.TotalTime == 0 ? 0 : (current.TotalTime - current.RemainingTime) * (clock.CurrentSequence.Length - 1) / current.TotalTime); clock.Tick(); - WidgetUtils.DrawSHPCentered(clock.Image, centerPosition, worldRenderer.Palette(ClockPalette), 0.5f); + WidgetUtils.DrawSpriteCentered(clock.Image, worldRenderer.Palette(ClockPalette), centerPosition, 0.5f); queueCol++; } diff --git a/OpenRA.Mods.Common/Widgets/ObserverSupportPowerIconsWidget.cs b/OpenRA.Mods.Common/Widgets/ObserverSupportPowerIconsWidget.cs index 4fc571b9a0..3381d63785 100644 --- a/OpenRA.Mods.Common/Widgets/ObserverSupportPowerIconsWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ObserverSupportPowerIconsWidget.cs @@ -124,14 +124,14 @@ namespace OpenRA.Mods.Common.Widgets 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)); - 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]; clock.PlayFetchIndex(ClockSequence, () => item.TotalTicks == 0 ? 0 : ((item.TotalTicks - item.RemainingTicks) * (clock.CurrentSequence.Length - 1) / item.TotalTicks)); 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(); diff --git a/OpenRA.Mods.Common/Widgets/ProductionPaletteWidget.cs b/OpenRA.Mods.Common/Widgets/ProductionPaletteWidget.cs index 459c264a09..f27cf7af6d 100644 --- a/OpenRA.Mods.Common/Widgets/ProductionPaletteWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ProductionPaletteWidget.cs @@ -499,12 +499,12 @@ namespace OpenRA.Mods.Common.Widgets Game.Renderer.EnableAntialiasingFilter(); 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 var pio = pios.FirstOrDefault(p => p.IsOverlayActive(icon.Actor)); 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 if (icon.Queued.Count > 0) @@ -515,10 +515,10 @@ namespace OpenRA.Mods.Common.Widgets * (clock.CurrentSequence.Length - 1) / first.TotalTime); 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)) - WidgetUtils.DrawSHPCentered(cantBuild.Image, icon.Pos + iconOffset, icon.IconDarkenPalette); + WidgetUtils.DrawSpriteCentered(cantBuild.Image, icon.IconDarkenPalette, icon.Pos + iconOffset); } Game.Renderer.DisableAntialiasingFilter(); diff --git a/OpenRA.Mods.Common/Widgets/ProductionTabsWidget.cs b/OpenRA.Mods.Common/Widgets/ProductionTabsWidget.cs index ef05e1765a..638d987b85 100644 --- a/OpenRA.Mods.Common/Widgets/ProductionTabsWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ProductionTabsWidget.cs @@ -194,11 +194,11 @@ namespace OpenRA.Mods.Common.Widgets ButtonWidget.DrawBackground(Button, rightButtonRect, rightDisabled, rightPressed, rightHover, false); var leftArrowImage = getLeftArrowImage.Update((leftDisabled, leftPressed, leftHover, false)); - WidgetUtils.DrawRGBA(leftArrowImage, + WidgetUtils.DrawSprite(leftArrowImage, new float2(leftButtonRect.Left + 2, leftButtonRect.Top + 2)); var rightArrowImage = getRightArrowImage.Update((rightDisabled, rightPressed, rightHover, false)); - WidgetUtils.DrawRGBA(rightArrowImage, + WidgetUtils.DrawSprite(rightArrowImage, new float2(rightButtonRect.Left + 2, rightButtonRect.Top + 2)); // Draw tab buttons diff --git a/OpenRA.Mods.Common/Widgets/RGBASpriteWidget.cs b/OpenRA.Mods.Common/Widgets/RGBASpriteWidget.cs index 0488c536a3..10aafce68d 100644 --- a/OpenRA.Mods.Common/Widgets/RGBASpriteWidget.cs +++ b/OpenRA.Mods.Common/Widgets/RGBASpriteWidget.cs @@ -33,7 +33,7 @@ namespace OpenRA.Mods.Common.Widgets { var sprite = GetSprite(); if (sprite != null) - Game.Renderer.RgbaSpriteRenderer.DrawSprite(sprite, RenderOrigin); + WidgetUtils.DrawSprite(sprite, RenderOrigin); } } } diff --git a/OpenRA.Mods.Common/Widgets/RadarWidget.cs b/OpenRA.Mods.Common/Widgets/RadarWidget.cs index 3b468a03de..fcb6bb4425 100644 --- a/OpenRA.Mods.Common/Widgets/RadarWidget.cs +++ b/OpenRA.Mods.Common/Widgets/RadarWidget.cs @@ -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 s = new float2(mapRect.Size.Width, mapRect.Size.Height * radarMinimapHeight); - var rsr = Game.Renderer.RgbaSpriteRenderer; - rsr.DrawSprite(terrainSprite, o, s); - rsr.DrawSprite(actorSprite, o, s); + WidgetUtils.DrawSprite(terrainSprite, o, s); + WidgetUtils.DrawSprite(actorSprite, o, s); if (shroud != null) - rsr.DrawSprite(shroudSprite, o, s); + WidgetUtils.DrawSprite(shroudSprite, o, s); // Draw viewport rect if (hasRadar) diff --git a/OpenRA.Mods.Common/Widgets/ResourceBarWidget.cs b/OpenRA.Mods.Common/Widgets/ResourceBarWidget.cs index 256878e0a5..bdf9454705 100644 --- a/OpenRA.Mods.Common/Widgets/ResourceBarWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ResourceBarWidget.cs @@ -90,7 +90,7 @@ namespace OpenRA.Mods.Common.Widgets var x = (b.Left + b.Right - indicator.Size.X) / 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 { @@ -100,7 +100,7 @@ namespace OpenRA.Mods.Common.Widgets var x = float2.Lerp(b.Left, b.Right, usedFrac) - indicator.Size.X / 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)); } } } diff --git a/OpenRA.Mods.Common/Widgets/ScrollPanelWidget.cs b/OpenRA.Mods.Common/Widgets/ScrollPanelWidget.cs index 3637ada0f0..eabc6db7f4 100644 --- a/OpenRA.Mods.Common/Widgets/ScrollPanelWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ScrollPanelWidget.cs @@ -210,11 +210,11 @@ namespace OpenRA.Mods.Common.Widgets var downOffset = !downPressed || downDisabled ? 4 : 4 + ButtonDepth; var upArrowImage = getUpArrowImage.Update((upDisabled, upPressed, upHover, false)); - WidgetUtils.DrawRGBA(upArrowImage, + WidgetUtils.DrawSprite(upArrowImage, new float2(upButtonRect.Left + upOffset, upButtonRect.Top + upOffset)); var downArrowImage = getDownArrowImage.Update((downDisabled, downPressed, downHover, false)); - WidgetUtils.DrawRGBA(downArrowImage, + WidgetUtils.DrawSprite(downArrowImage, new float2(downButtonRect.Left + downOffset, downButtonRect.Top + downOffset)); } diff --git a/OpenRA.Mods.Common/Widgets/SliderWidget.cs b/OpenRA.Mods.Common/Widgets/SliderWidget.cs index cf38cee376..4b023b5a86 100644 --- a/OpenRA.Mods.Common/Widgets/SliderWidget.cs +++ b/OpenRA.Mods.Common/Widgets/SliderWidget.cs @@ -132,7 +132,7 @@ namespace OpenRA.Mods.Common.Widgets trackOrigin + (i * (trackRect.Width - (int)tick.Size.X) / (Ticks - 1)) - tick.Size.X / 2, trackRect.Bottom); - WidgetUtils.DrawRGBA(tick, tickPos); + WidgetUtils.DrawSprite(tick, tickPos); } // Track diff --git a/OpenRA.Mods.Common/Widgets/StrategicProgressWidget.cs b/OpenRA.Mods.Common/Widgets/StrategicProgressWidget.cs index 3eac60d1e4..a22ad5b700 100644 --- a/OpenRA.Mods.Common/Widgets/StrategicProgressWidget.cs +++ b/OpenRA.Mods.Common/Widgets/StrategicProgressWidget.cs @@ -47,12 +47,12 @@ namespace OpenRA.Mods.Common.Widgets 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) - 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) - 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; } diff --git a/OpenRA.Mods.Common/Widgets/SupportPowersWidget.cs b/OpenRA.Mods.Common/Widgets/SupportPowersWidget.cs index f1ba6f9f9d..ef32fff7f0 100644 --- a/OpenRA.Mods.Common/Widgets/SupportPowersWidget.cs +++ b/OpenRA.Mods.Common/Widgets/SupportPowersWidget.cs @@ -202,7 +202,7 @@ namespace OpenRA.Mods.Common.Widgets Game.Renderer.EnableAntialiasingFilter(); 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 var sp = p.Power; @@ -211,7 +211,7 @@ namespace OpenRA.Mods.Common.Widgets * (clock.CurrentSequence.Length - 1) / sp.TotalTicks); clock.Tick(); - WidgetUtils.DrawSHPCentered(clock.Image, p.Pos + iconOffset, p.IconClockPalette); + WidgetUtils.DrawSpriteCentered(clock.Image, p.IconClockPalette, p.Pos + iconOffset); } Game.Renderer.DisableAntialiasingFilter(); diff --git a/OpenRA.Mods.Common/Widgets/VideoPlayerWidget.cs b/OpenRA.Mods.Common/Widgets/VideoPlayerWidget.cs index 88c0b692ad..91ba065734 100644 --- a/OpenRA.Mods.Common/Widgets/VideoPlayerWidget.cs +++ b/OpenRA.Mods.Common/Widgets/VideoPlayerWidget.cs @@ -118,10 +118,7 @@ namespace OpenRA.Mods.Common.Widgets Log.Write("perf", "VqaPlayer : {0} skipped {1} frames at position {2}", cachedVideo, skippedFrames, video.CurrentFrame); } - Game.Renderer.RgbaSpriteRenderer.DrawSprite( - videoSprite, - videoOrigin, - videoSize); + WidgetUtils.DrawSprite(videoSprite, videoOrigin, videoSize); if (DrawOverlay) { @@ -161,7 +158,7 @@ namespace OpenRA.Mods.Common.Widgets overlayScale = scale; } - Game.Renderer.RgbaSpriteRenderer.DrawSprite(overlaySprite, overlayOrigin, overlaySize); + WidgetUtils.DrawSprite(overlaySprite, overlayOrigin, overlaySize); } } diff --git a/OpenRA.Mods.Common/Widgets/WidgetUtils.cs b/OpenRA.Mods.Common/Widgets/WidgetUtils.cs index 762826db48..9f627ab357 100644 --- a/OpenRA.Mods.Common/Widgets/WidgetUtils.cs +++ b/OpenRA.Mods.Common/Widgets/WidgetUtils.cs @@ -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); } - 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); } @@ -83,7 +88,7 @@ namespace OpenRA.Mods.Common.Widgets 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 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 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 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 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)