Use RgbaColorRenderer for UI rendering.

This commit is contained in:
Paul Chote
2015-11-29 11:47:47 +00:00
parent 2d89f15374
commit 66744ee92a
3 changed files with 12 additions and 25 deletions

View File

@@ -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);

View File

@@ -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)

View File

@@ -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;