big pile of Render refactoring

This commit is contained in:
alzeih
2010-07-21 18:57:42 +12:00
parent 84e1ed1cf9
commit 2f9f539857
28 changed files with 99 additions and 136 deletions

View File

@@ -201,13 +201,12 @@ namespace OpenRA.Widgets
var numActualRows = Math.Max((allBuildables.Length + Columns - 1) / Columns, Rows);
// Palette Background
WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.Renderer, paletteCollection, "top"), new float2(origin.X - 9, origin.Y - 9));
WidgetUtils.DrawRGBA(ChromeProvider.GetImage(paletteCollection, "top"), new float2(origin.X - 9, origin.Y - 9));
for (var w = 0; w < numActualRows; w++)
WidgetUtils.DrawRGBA(
ChromeProvider.GetImage(Game.Renderer, paletteCollection,
"bg-" + (w % 4).ToString()),
ChromeProvider.GetImage(paletteCollection, "bg-" + (w % 4).ToString()),
new float2(origin.X - 9, origin.Y + 48 * w));
WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.Renderer, paletteCollection, "bottom"),
WidgetUtils.DrawRGBA(ChromeProvider.GetImage(paletteCollection, "bottom"),
new float2(origin.X - 9, origin.Y - 1 + 48 * numActualRows));
Game.Renderer.RgbaSpriteRenderer.Flush();
@@ -283,14 +282,14 @@ namespace OpenRA.Widgets
new float2(Game.viewport.Width, origin.Y + numActualRows * 48 + 9).ToInt2());
// Palette Dock
WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.Renderer, paletteCollection, "dock-top"),
WidgetUtils.DrawRGBA(ChromeProvider.GetImage(paletteCollection, "dock-top"),
new float2(Game.viewport.Width - 14, origin.Y - 23));
for (int i = 0; i < numActualRows; i++)
WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.Renderer, paletteCollection, "dock-" + (i % 4).ToString()),
WidgetUtils.DrawRGBA(ChromeProvider.GetImage(paletteCollection, "dock-" + (i % 4).ToString()),
new float2(Game.viewport.Width - 14, origin.Y + 48 * i));
WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.Renderer, paletteCollection, "dock-bottom"),
WidgetUtils.DrawRGBA(ChromeProvider.GetImage(paletteCollection, "dock-bottom"),
new float2(Game.viewport.Width - 14, origin.Y - 1 + 48 * numActualRows));
Game.Renderer.RgbaSpriteRenderer.Flush();
@@ -416,7 +415,7 @@ namespace OpenRA.Widgets
var producing = queue.CurrentItem(groupName);
var index = q.Key == currentTab ? 2 : (producing != null && producing.Done) ? 1 : 0;
var race = world.LocalPlayer.Country.Race;
WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.Renderer,"tabs-"+tabKeys[index], race+"-"+q.Key), new float2(x, y));
WidgetUtils.DrawRGBA(ChromeProvider.GetImage("tabs-"+tabKeys[index], race+"-"+q.Key), new float2(x, y));
var rect = new Rectangle((int)x,(int)y,(int)tabWidth,(int)tabHeight);
tabs.Add(Pair.New(rect, HandleTabClick(groupName, world)));

View File

@@ -37,23 +37,20 @@ namespace OpenRA.Widgets
if (DrawBackground)
WidgetUtils.DrawPanel("dialog3", chatLogArea);
var renderer = Game.Renderer;
var font = renderer.RegularFont;
renderer.RgbaSpriteRenderer.Flush();
renderer.Device.EnableScissor(chatLogArea.Left, chatLogArea.Top, chatLogArea.Width, chatLogArea.Height);
Game.Renderer.RgbaSpriteRenderer.Flush();
Game.Renderer.Device.EnableScissor(chatLogArea.Left, chatLogArea.Top, chatLogArea.Width, chatLogArea.Height);
foreach (var line in recentLines.AsEnumerable().Reverse())
{
chatpos.Y -= 20;
var owner = line.Owner + ":";
var inset = font.Measure(owner).X + 10;
font.DrawText(owner, chatpos, line.Color);
font.DrawText(line.Text, chatpos + new int2(inset, 0), Color.White);
var inset = Game.Renderer.RegularFont.Measure(owner).X + 10;
Game.Renderer.RegularFont.DrawText(owner, chatpos, line.Color);
Game.Renderer.RegularFont.DrawText(line.Text, chatpos + new int2(inset, 0), Color.White);
}
renderer.RgbaSpriteRenderer.Flush();
renderer.Device.DisableScissor();
Game.Renderer.RgbaSpriteRenderer.Flush();
Game.Renderer.Device.DisableScissor();
}
public void AddLine(Color c, string from, string text)

View File

@@ -43,7 +43,7 @@ namespace OpenRA.Widgets
var name = GetImageName();
var collection = GetImageCollection();
WidgetUtils.DrawRGBA(
ChromeProvider.GetImage(Game.Renderer, collection, name),
ChromeProvider.GetImage(collection, name),
RenderOrigin);
}
}

View File

@@ -73,9 +73,9 @@ namespace OpenRA.Widgets
public override void DrawInner( World world )
{
if (UnownedSpawn == null)
UnownedSpawn = ChromeProvider.GetImage(Game.Renderer, "spawnpoints", "unowned");
UnownedSpawn = ChromeProvider.GetImage("spawnpoints", "unowned");
if (OwnedSpawn == null)
OwnedSpawn = ChromeProvider.GetImage(Game.Renderer, "spawnpoints", "owned");
OwnedSpawn = ChromeProvider.GetImage("spawnpoints", "owned");
var map = Map();
if( map == null ) return;
@@ -87,7 +87,7 @@ namespace OpenRA.Widgets
// Update image data
var preview = PreviewCache[map];
if( mapChooserSheet == null || mapChooserSheet.Size.Width != preview.Width || mapChooserSheet.Size.Height != preview.Height )
mapChooserSheet = new Sheet( Game.Renderer, new Size( preview.Width, preview.Height ) );
mapChooserSheet = new Sheet(new Size( preview.Width, preview.Height ) );
mapChooserSheet.Texture.SetData( preview );
mapChooserSprite = new Sprite( mapChooserSheet, new Rectangle( 0, 0, map.Width, map.Height ), TextureChannel.Alpha );

View File

@@ -40,7 +40,7 @@ namespace OpenRA.Widgets
var chromeCollection = "chrome-" + world.LocalPlayer.Country.Race;
Game.Renderer.RgbaSpriteRenderer.DrawSprite(
ChromeProvider.GetImage(Game.Renderer, chromeCollection, "moneybin"),
ChromeProvider.GetImage(chromeCollection, "moneybin"),
new float2(Bounds.Left, 0), "chrome");
// Cash
@@ -51,7 +51,7 @@ namespace OpenRA.Widgets
foreach (var d in cashDigits.Reverse())
{
Game.Renderer.RgbaSpriteRenderer.DrawSprite(
ChromeProvider.GetImage(Game.Renderer, digitCollection, (d - '0').ToString()),
ChromeProvider.GetImage(digitCollection, (d - '0').ToString()),
new float2(x, 6), "chrome");
x -= 14;
}
@@ -65,7 +65,7 @@ namespace OpenRA.Widgets
foreach (var d in oreDigits.Reverse())
{
Game.Renderer.RgbaSpriteRenderer.DrawSprite(
ChromeProvider.GetImage(Game.Renderer, digitCollection, (d - '0').ToString()),
ChromeProvider.GetImage( digitCollection, (d - '0').ToString()),
new float2(x, 6), "chrome");
x -= 14;
}

View File

@@ -21,7 +21,7 @@ namespace OpenRA.Widgets
public override void DrawInner (World world)
{
var image = ChromeProvider.GetImage(Game.Renderer, Image + "-button", GetImage());
var image = ChromeProvider.GetImage(Image + "-button", GetImage());
var rect = new Rectangle(RenderBounds.X, RenderBounds.Y, (int)image.size.X, (int)image.size.Y);
if (rect.Contains(Widget.LastMousePos.ToPoint()))

View File

@@ -35,10 +35,6 @@ namespace OpenRA.Widgets
&& resources.PowerDrained == 0)
return;
var renderer = Game.Renderer;
var lineRenderer = Game.Renderer.LineRenderer;
var rgbaRenderer = renderer.RgbaSpriteRenderer;
// Draw bar horizontally
var barStart = powerOrigin + RadarBinWidget.radarOrigin;
var barEnd = barStart + new float2(powerSize.Width, 0);
@@ -70,18 +66,18 @@ namespace OpenRA.Widgets
leftOffset.X += 1;
rightOffset.X -= 1;
}
lineRenderer.DrawLine(Game.viewport.Location + barStart + leftOffset, Game.viewport.Location + powerLevel + rightOffset, color, color);
Game.Renderer.LineRenderer.DrawLine(Game.viewport.Location + barStart + leftOffset, Game.viewport.Location + powerLevel + rightOffset, color, color);
}
lineRenderer.Flush();
Game.Renderer.LineRenderer.Flush();
// Power usage indicator
var indicator = ChromeProvider.GetImage(renderer, powerCollection, "power-indicator");
var indicator = ChromeProvider.GetImage( powerCollection, "power-indicator");
var powerDrainedTemp = barStart.X + (barEnd.X - barStart.X) * (resources.PowerDrained / powerScaleBy);
lastPowerDrainedPos = float2.Lerp(lastPowerDrainedPos.GetValueOrDefault(powerDrainedTemp), powerDrainedTemp, .3f);
float2 powerDrainLevel = new float2(lastPowerDrainedPos.Value - indicator.size.X / 2, barStart.Y - 1);
rgbaRenderer.DrawSprite(indicator, powerDrainLevel, "chrome");
rgbaRenderer.Flush();
Game.Renderer.RgbaSpriteRenderer.DrawSprite(indicator, powerDrainLevel, "chrome");
Game.Renderer.RgbaSpriteRenderer.Flush();
}
}
}

View File

@@ -105,17 +105,14 @@ namespace OpenRA.Widgets
hasRadar = hasNewRadar;
var renderer = Game.Renderer;
var rgbaRenderer = renderer.RgbaSpriteRenderer;
rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, radarCollection, "left"), radarOrigin, "chrome");
rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, radarCollection, "right"), radarOrigin + new float2(201, 0), "chrome");
rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, radarCollection, "bottom"), radarOrigin + new float2(0, 192), "chrome");
Game.Renderer.RgbaSpriteRenderer.DrawSprite(ChromeProvider.GetImage(radarCollection, "left"), radarOrigin, "chrome");
Game.Renderer.RgbaSpriteRenderer.DrawSprite(ChromeProvider.GetImage(radarCollection, "right"), radarOrigin + new float2(201, 0), "chrome");
Game.Renderer.RgbaSpriteRenderer.DrawSprite(ChromeProvider.GetImage(radarCollection, "bottom"), radarOrigin + new float2(0, 192), "chrome");
if (radarAnimating)
rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, radarCollection, "bg"), radarOrigin + new float2(9, 0), "chrome");
Game.Renderer.RgbaSpriteRenderer.DrawSprite(ChromeProvider.GetImage(radarCollection, "bg"), radarOrigin + new float2(9, 0), "chrome");
rgbaRenderer.Flush();
Game.Renderer.RgbaSpriteRenderer.Flush();
if (radarAnimationFrame >= radarSlideAnimationLength)
{

View File

@@ -25,9 +25,8 @@ namespace OpenRA.Widgets
public override void DrawInner(World world)
{
var s = WorldUtils.FormatTime(Game.LocalTick);
var f = Game.Renderer.TitleFont;
var size = f.Measure(s);
f.DrawText(s, new float2(RenderBounds.Left - size.X / 2, RenderBounds.Top - 20), Color.White);
var size = Game.Renderer.TitleFont.Measure(s);
Game.Renderer.TitleFont.DrawText(s, new float2(RenderBounds.Left - size.X / 2, RenderBounds.Top - 20), Color.White);
}
}
}

View File

@@ -19,7 +19,7 @@ namespace OpenRA.Widgets
{
public static Sprite GetChromeImage(World world, string name)
{
return ChromeProvider.GetImage(Game.Renderer, "chrome-" + world.LocalPlayer.Country.Race, name);
return ChromeProvider.GetImage("chrome-" + world.LocalPlayer.Country.Race, name);
}
public static void DrawRGBA(Sprite s, float2 pos)
@@ -64,7 +64,7 @@ namespace OpenRA.Widgets
public static int[] GetBorderSizes(string collection)
{
var images = new[] { "border-t", "border-b", "border-l", "border-r" };
var ss = images.Select(i => ChromeProvider.GetImage(Game.Renderer, "dialog4", i)).ToArray();
var ss = images.Select(i => ChromeProvider.GetImage("dialog4", i)).ToArray();
return new[] { (int)ss[0].size.Y, (int)ss[1].size.Y, (int)ss[2].size.X, (int)ss[3].size.X };
}
@@ -78,7 +78,7 @@ namespace OpenRA.Widgets
public static void DrawPanelPartial(string collection, Rectangle Bounds, PanelSides ps)
{
var images = new[] { "border-t", "border-b", "border-l", "border-r", "corner-tl", "corner-tr", "corner-bl", "corner-br", "background" };
var ss = images.Select(i => ChromeProvider.GetImage(Game.Renderer, collection, i)).ToArray();
var ss = images.Select(i => ChromeProvider.GetImage(collection, i)).ToArray();
// Background
FillRectWithSprite(new Rectangle(Bounds.Left + (int)ss[2].size.X,

View File

@@ -37,11 +37,10 @@ namespace OpenRA.Widgets
? "" : "{0}".F(actor.Owner.PlayerName);
var text3 = (actor.Owner == world.LocalPlayer || actor.Owner.NonCombatant)
? "" : " ({0})".F(world.LocalPlayer.Stances[actor.Owner]);
var renderer = Game.Renderer;
var sz = renderer.BoldFont.Measure(text);
var sz2 = renderer.RegularFont.Measure(text2);
var sz3 = renderer.RegularFont.Measure(text3);
var sz = Game.Renderer.BoldFont.Measure(text);
var sz2 = Game.Renderer.RegularFont.Measure(text2);
var sz3 = Game.Renderer.RegularFont.Measure(text3);
sz.X = Math.Max(sz.X, sz2.X + sz3.X + 35);
@@ -54,23 +53,23 @@ namespace OpenRA.Widgets
Widget.LastMousePos.X + 20, Widget.LastMousePos.Y + 20,
Widget.LastMousePos.X + sz.X + 20, Widget.LastMousePos.Y + sz.Y + 20));
renderer.BoldFont.DrawText(text,
Game.Renderer.BoldFont.DrawText(text,
new float2(Widget.LastMousePos.X + 30, Widget.LastMousePos.Y + 30), Color.White);
if (text2 != "")
{
renderer.RegularFont.DrawText(text2,
Game.Renderer.RegularFont.DrawText(text2,
new float2(Widget.LastMousePos.X + 65, Widget.LastMousePos.Y + 50), actor.Owner.Color);
renderer.RegularFont.DrawText(text3,
Game.Renderer.RegularFont.DrawText(text3,
new float2(Widget.LastMousePos.X + 65 + sz2.X, Widget.LastMousePos.Y + 50), Color.White);
WidgetUtils.DrawRGBA(
ChromeProvider.GetImage(Game.Renderer, "flags", actor.Owner.Country.Race),
ChromeProvider.GetImage("flags", actor.Owner.Country.Race),
new float2(Widget.LastMousePos.X + 30, Widget.LastMousePos.Y + 50));
}
renderer.RgbaSpriteRenderer.Flush();
Game.Renderer.RgbaSpriteRenderer.Flush();
}
}
}