From 66744ee92a226bc82cfcf662a1e8c3d602d04964 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sun, 29 Nov 2015 11:47:47 +0000 Subject: [PATCH] Use RgbaColorRenderer for UI rendering. --- OpenRA.Game/Graphics/LineRenderer.cs | 19 ------------------- OpenRA.Game/Widgets/WidgetUtils.cs | 4 ++-- .../Widgets/ResourceBarWidget.cs | 14 ++++++++++---- 3 files changed, 12 insertions(+), 25 deletions(-) diff --git a/OpenRA.Game/Graphics/LineRenderer.cs b/OpenRA.Game/Graphics/LineRenderer.cs index a3379a3469..94d35c697e 100644 --- a/OpenRA.Game/Graphics/LineRenderer.cs +++ b/OpenRA.Game/Graphics/LineRenderer.cs @@ -145,25 +145,6 @@ namespace OpenRA.Graphics } } - public void FillRect(RectangleF r, Color color) - { - for (var y = r.Top; y < r.Bottom; y++) - DrawLine(new float2(r.Left, y), new float2(r.Right, y), color); - } - - public void FillEllipse(RectangleF r, Color color) - { - var a = (r.Right - r.Left) / 2; - var b = (r.Bottom - r.Top) / 2; - var xc = (r.Right + r.Left) / 2; - var yc = (r.Bottom + r.Top) / 2; - for (var y = r.Top; y <= r.Bottom; y++) - { - var dx = a * (float)Math.Sqrt(1 - (y - yc) * (y - yc) / b / b); - DrawLine(new float2(xc - dx, y), new float2(xc + dx, y), color); - } - } - public void SetViewportParams(Size screen, float zoom, int2 scroll) { shader.SetVec("Scroll", scroll.X, scroll.Y); diff --git a/OpenRA.Game/Widgets/WidgetUtils.cs b/OpenRA.Game/Widgets/WidgetUtils.cs index fbb5055e52..68a70f5943 100644 --- a/OpenRA.Game/Widgets/WidgetUtils.cs +++ b/OpenRA.Game/Widgets/WidgetUtils.cs @@ -64,12 +64,12 @@ namespace OpenRA.Widgets public static void FillRectWithColor(Rectangle r, Color c) { - Game.Renderer.LineRenderer.FillRect(new RectangleF(r.X, r.Y, r.Width, r.Height), c); + Game.Renderer.RgbaColorRenderer.FillRect(new float2(r.Left, r.Top), new float2(r.Right, r.Bottom), c); } public static void FillEllipseWithColor(Rectangle r, Color c) { - Game.Renderer.LineRenderer.FillEllipse(new RectangleF(r.X, r.Y, r.Width, r.Height), c); + Game.Renderer.RgbaColorRenderer.FillEllipse(new RectangleF(r.X, r.Y, r.Width, r.Height), c); } public static int[] GetBorderSizes(string collection) diff --git a/OpenRA.Mods.Common/Widgets/ResourceBarWidget.cs b/OpenRA.Mods.Common/Widgets/ResourceBarWidget.cs index 4963d9e24f..45a6e182de 100644 --- a/OpenRA.Mods.Common/Widgets/ResourceBarWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ResourceBarWidget.cs @@ -96,9 +96,11 @@ namespace OpenRA.Mods.Common.Widgets } } else - Game.Renderer.LineRenderer.FillRect(new Rectangle( - b.X, (int)float2.Lerp(b.Bottom, b.Top, providedFrac), - b.Width, (int)(providedFrac * b.Height)), color); + { + var tl = new float2(b.X, (int)float2.Lerp(b.Bottom, b.Top, providedFrac)); + var br = tl + new float2(b.Width, (int)(providedFrac * b.Height)); + Game.Renderer.RgbaColorRenderer.FillRect(tl, br, color); + } var x = (b.Left + b.Right - indicator.Size.X) / 2; var y = float2.Lerp(b.Bottom, b.Top, usedFrac) - indicator.Size.Y / 2; @@ -126,7 +128,11 @@ namespace OpenRA.Mods.Common.Widgets } } else - Game.Renderer.LineRenderer.FillRect(new Rectangle(b.X, b.Y, (int)(providedFrac * b.Width), b.Height), color); + { + var tl = new float2(b.X, b.Y); + var br = tl + new float2((int)(providedFrac * b.Width), b.Height); + Game.Renderer.RgbaColorRenderer.FillRect(tl, br, color); + } var x = float2.Lerp(b.Left, b.Right, usedFrac) - indicator.Size.X / 2; var y = (b.Bottom + b.Top - indicator.Size.Y) / 2;