perf stuff is a bit nicer; render time shown
This commit is contained in:
@@ -85,8 +85,7 @@ namespace OpenRa.Game
|
|||||||
PlaySound("intro.aud", false);
|
PlaySound("intro.aud", false);
|
||||||
|
|
||||||
skipMakeAnims = false;
|
skipMakeAnims = false;
|
||||||
|
PerfHistory.items["render"].hasNormalTick = false;
|
||||||
sw = new Stopwatch();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void LoadMapBuildings( IniFile mapfile )
|
static void LoadMapBuildings( IniFile mapfile )
|
||||||
@@ -148,8 +147,6 @@ namespace OpenRa.Game
|
|||||||
public static double TickTime = 0.0;
|
public static double TickTime = 0.0;
|
||||||
public static double OreTime = 0.0;
|
public static double OreTime = 0.0;
|
||||||
|
|
||||||
public static Stopwatch sw;
|
|
||||||
|
|
||||||
public static void Tick()
|
public static void Tick()
|
||||||
{
|
{
|
||||||
int t = Environment.TickCount;
|
int t = Environment.TickCount;
|
||||||
@@ -158,7 +155,6 @@ namespace OpenRa.Game
|
|||||||
{
|
{
|
||||||
using (new PerfSample("tick_time"))
|
using (new PerfSample("tick_time"))
|
||||||
{
|
{
|
||||||
sw.Reset();
|
|
||||||
lastTime += timestep;
|
lastTime += timestep;
|
||||||
|
|
||||||
if (orderManager.Tick())
|
if (orderManager.Tick())
|
||||||
@@ -178,18 +174,20 @@ namespace OpenRa.Game
|
|||||||
foreach (var player in players.Values)
|
foreach (var player in players.Values)
|
||||||
player.Tick();
|
player.Tick();
|
||||||
}
|
}
|
||||||
|
|
||||||
TickTime = sw.ElapsedTime();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PerfHistory.Tick();
|
PerfHistory.Tick();
|
||||||
}
|
}
|
||||||
|
|
||||||
sw.Reset();
|
using (new PerfSample("render"))
|
||||||
++RenderFrame;
|
{
|
||||||
viewport.cursor = controller.ChooseCursor();
|
|
||||||
viewport.DrawRegions();
|
++RenderFrame;
|
||||||
RenderTime = sw.ElapsedTime();
|
viewport.cursor = controller.ChooseCursor();
|
||||||
|
viewport.DrawRegions();
|
||||||
|
}
|
||||||
|
|
||||||
|
PerfHistory.items["render"].Tick();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsCellBuildable(int2 a, UnitMovementType umt)
|
public static bool IsCellBuildable(int2 a, UnitMovementType umt)
|
||||||
|
|||||||
@@ -52,64 +52,63 @@ namespace OpenRa.Game.Graphics
|
|||||||
|
|
||||||
spriteRenderer.DrawSprite(image.a, loc, image.c);
|
spriteRenderer.DrawSprite(image.a, loc, image.c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Draw()
|
public void Draw()
|
||||||
{
|
{
|
||||||
terrainRenderer.Draw( Game.viewport );
|
terrainRenderer.Draw(Game.viewport);
|
||||||
|
|
||||||
var rect = new RectangleF((region.Position + Game.viewport.Location).ToPointF(),
|
var rect = new RectangleF((region.Position + Game.viewport.Location).ToPointF(),
|
||||||
region.Size.ToSizeF());
|
region.Size.ToSizeF());
|
||||||
|
|
||||||
foreach (Actor a in Game.world.Actors.OrderBy( u => u.CenterLocation.Y ))
|
foreach (Actor a in Game.world.Actors.OrderBy(u => u.CenterLocation.Y))
|
||||||
DrawSpriteList(rect, a.Render());
|
DrawSpriteList(rect, a.Render());
|
||||||
|
|
||||||
foreach (var a in Game.world.Actors
|
foreach (var a in Game.world.Actors
|
||||||
.Where(u => u.traits.Contains<Traits.RenderWarFactory>())
|
.Where(u => u.traits.Contains<Traits.RenderWarFactory>())
|
||||||
.Select(u => u.traits.Get<Traits.RenderWarFactory>()))
|
.Select(u => u.traits.Get<Traits.RenderWarFactory>()))
|
||||||
DrawSpriteList(rect, a.RenderRoof(a.self)); /* RUDE HACK */
|
DrawSpriteList(rect, a.RenderRoof(a.self)); /* RUDE HACK */
|
||||||
|
|
||||||
foreach (IEffect e in Game.world.Effects)
|
foreach (IEffect e in Game.world.Effects)
|
||||||
DrawSpriteList(rect, e.Render());
|
DrawSpriteList(rect, e.Render());
|
||||||
|
|
||||||
uiOverlay.Draw();
|
uiOverlay.Draw();
|
||||||
|
|
||||||
spriteRenderer.Flush();
|
spriteRenderer.Flush();
|
||||||
|
|
||||||
var selbox = Game.controller.SelectionBox;
|
var selbox = Game.controller.SelectionBox;
|
||||||
if (selbox != null)
|
if (selbox != null)
|
||||||
{
|
{
|
||||||
var a = selbox.Value.First;
|
var a = selbox.Value.First;
|
||||||
var b = new float2(selbox.Value.Second.X - a.X, 0);
|
var b = new float2(selbox.Value.Second.X - a.X, 0);
|
||||||
var c = new float2(0, selbox.Value.Second.Y - a.Y);
|
var c = new float2(0, selbox.Value.Second.Y - a.Y);
|
||||||
|
|
||||||
lineRenderer.DrawLine(a, a + b, Color.White, Color.White);
|
lineRenderer.DrawLine(a, a + b, Color.White, Color.White);
|
||||||
lineRenderer.DrawLine(a + b, a + b + c, Color.White, Color.White);
|
lineRenderer.DrawLine(a + b, a + b + c, Color.White, Color.White);
|
||||||
lineRenderer.DrawLine(a + b + c, a + c, Color.White, Color.White);
|
lineRenderer.DrawLine(a + b + c, a + c, Color.White, Color.White);
|
||||||
lineRenderer.DrawLine(a, a + c, Color.White, Color.White);
|
lineRenderer.DrawLine(a, a + c, Color.White, Color.White);
|
||||||
|
|
||||||
foreach (var u in Game.SelectUnitsInBox(selbox.Value.First, selbox.Value.Second))
|
foreach (var u in Game.SelectUnitsInBox(selbox.Value.First, selbox.Value.Second))
|
||||||
DrawSelectionBox(u, Color.Yellow, false);
|
DrawSelectionBox(u, Color.Yellow, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
var uog = Game.controller.orderGenerator as UnitOrderGenerator;
|
var uog = Game.controller.orderGenerator as UnitOrderGenerator;
|
||||||
if (uog != null)
|
if (uog != null)
|
||||||
foreach( var a in uog.selection )
|
foreach (var a in uog.selection)
|
||||||
DrawSelectionBox(a, Color.White, true);
|
DrawSelectionBox(a, Color.White, true);
|
||||||
|
|
||||||
lineRenderer.Flush();
|
lineRenderer.Flush();
|
||||||
|
|
||||||
renderer.DrawText(string.Format("RenderFrame {0} ({2:F1} ms)\nTick {1} ({3:F1} ms)\nOre ({4:F1} ms)\n$ {5}\nPower {7}\nTiles Expanded {6:F0}",
|
renderer.DrawText(string.Format("RenderFrame {0} ({2:F1} ms)\nTick {1} ({3:F1} ms)\n$ {4}\nPower {5}",
|
||||||
Game.RenderFrame, Game.orderManager.FrameNumber,
|
Game.RenderFrame,
|
||||||
Game.RenderTime * 1000,
|
Game.orderManager.FrameNumber,
|
||||||
Game.TickTime * 1000,
|
PerfHistory.items["render"].LastValue,
|
||||||
Game.OreTime * 1000,
|
PerfHistory.items["tick_time"].LastValue,
|
||||||
Game.LocalPlayer.Cash,
|
Game.LocalPlayer.Cash,
|
||||||
PerfHistory.items[ "nodes_expanded" ].LastValue,
|
Game.LocalPlayer.GetTotalPower()
|
||||||
Game.LocalPlayer.GetTotalPower()
|
|
||||||
), new int2(5, 5), Color.White);
|
), new int2(5, 5), Color.White);
|
||||||
|
|
||||||
PerfHistory.Render(renderer, lineRenderer);
|
PerfHistory.Render(renderer, lineRenderer);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DrawSelectionBox(Actor selectedUnit, Color c, bool drawHealthBar)
|
void DrawSelectionBox(Actor selectedUnit, Color c, bool drawHealthBar)
|
||||||
|
|||||||
@@ -29,7 +29,8 @@ namespace OpenRa.Game.Support
|
|||||||
public static void Tick()
|
public static void Tick()
|
||||||
{
|
{
|
||||||
foreach (var item in items.Values)
|
foreach (var item in items.Values)
|
||||||
item.Tick();
|
if (item.hasNormalTick)
|
||||||
|
item.Tick();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Render(Renderer r, LineRenderer lr)
|
public static void Render(Renderer r, LineRenderer lr)
|
||||||
@@ -65,6 +66,7 @@ namespace OpenRa.Game.Support
|
|||||||
public double[] samples = new double[100];
|
public double[] samples = new double[100];
|
||||||
public double val = 0.0;
|
public double val = 0.0;
|
||||||
int head = 1, tail = 0;
|
int head = 1, tail = 0;
|
||||||
|
public bool hasNormalTick = true;
|
||||||
|
|
||||||
public PerfItem(string name, Color c)
|
public PerfItem(string name, Color c)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user