text rendering

This commit is contained in:
Chris Forbes
2009-10-29 21:45:29 +13:00
parent c3f8019ab4
commit 9d543db7fc
3 changed files with 23 additions and 4 deletions

View File

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

View File

@@ -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 */

View File

@@ -14,6 +14,8 @@ namespace OpenRa.Game
List<OrderSource> players;
int frameNumber = 0;
public int FrameNumber { get { return frameNumber; } }
public OrderManager( IEnumerable<OrderSource> players )
{
this.players = players.ToList();