diff --git a/OpenRa.Game/Graphics/Renderer.cs b/OpenRa.Game/Graphics/Renderer.cs index a15d67412d..296129fe14 100644 --- a/OpenRa.Game/Graphics/Renderer.cs +++ b/OpenRa.Game/Graphics/Renderer.cs @@ -13,6 +13,9 @@ namespace OpenRa.Game.Graphics public Shader SpriteShader { get; private set; } /* note: shared shader params */ public Shader LineShader { get; private set; } + readonly SpriteHelper sh; + readonly FontHelper fhDebug; + public void BuildPalette(Map map) { palettes = Util.MakeArray(7, i => new HardwarePalette(this, map, i).Texture); @@ -33,6 +36,9 @@ namespace OpenRa.Game.Graphics SpriteShader.Quality = ShaderQuality.Low; LineShader = new Shader(device, FileSystem.Open("line.fx")); LineShader.Quality = ShaderQuality.High; + + sh = new SpriteHelper(device ); + fhDebug = new FontHelper(device, "Tahoma", 10, false ); } public GraphicsDevice Device { get { return device; } } @@ -83,5 +89,12 @@ namespace OpenRa.Game.Graphics device.DrawIndexedPrimitives(type, vertexPool, numPrimitives); } + + public void DrawText(string text, int2 pos, Color c) + { + sh.Begin(); + fhDebug.Draw(sh, text, pos.X, pos.Y, c.ToArgb()); + sh.End(); + } } } diff --git a/OpenRa.Game/Graphics/WorldRenderer.cs b/OpenRa.Game/Graphics/WorldRenderer.cs index 69e2960252..03f05a95bd 100644 --- a/OpenRa.Game/Graphics/WorldRenderer.cs +++ b/OpenRa.Game/Graphics/WorldRenderer.cs @@ -12,7 +12,8 @@ namespace OpenRa.Game.Graphics public readonly SpriteRenderer spriteRenderer; public readonly LineRenderer lineRenderer; public readonly Region region; - public readonly UiOverlay uiOverlay; + public readonly UiOverlay uiOverlay; + readonly Renderer renderer; public static bool ShowUnitPaths = false; @@ -23,8 +24,9 @@ namespace OpenRa.Game.Graphics Game.viewport.Width - 128, Draw, Game.controller.HandleMouseInput); - Game.viewport.AddRegion(region); - + Game.viewport.AddRegion(region); + + this.renderer = renderer; spriteRenderer = new SpriteRenderer(renderer, true); lineRenderer = new LineRenderer(renderer); uiOverlay = new UiOverlay(spriteRenderer); @@ -90,7 +92,9 @@ namespace OpenRa.Game.Graphics foreach( var a in uog.selection ) DrawSelectionBox(a, Color.White, true); - lineRenderer.Flush(); + lineRenderer.Flush(); + + renderer.DrawText(string.Format("Frame {0}", Game.orderManager.FrameNumber), new int2(5, 5), Color.White); } const float conditionYellow = 0.5f; /* todo: get these from gamerules */ diff --git a/OpenRa.Game/OrderManager.cs b/OpenRa.Game/OrderManager.cs index a43fd2900c..2b07f562ac 100755 --- a/OpenRa.Game/OrderManager.cs +++ b/OpenRa.Game/OrderManager.cs @@ -14,6 +14,8 @@ namespace OpenRa.Game List players; int frameNumber = 0; + public int FrameNumber { get { return frameNumber; } } + public OrderManager( IEnumerable players ) { this.players = players.ToList();