From 03a71a52ab99783c0e1d2622561862c5f1a0de7d Mon Sep 17 00:00:00 2001 From: gered Date: Sat, 24 Aug 2013 18:27:03 -0400 Subject: [PATCH] switch test GameApp to use BasicGameApp and game states/processes instead --- Game.Core/DebugInfoProcess.cs | 41 +++++++++++++++ Game.Core/Game.Core.csproj | 2 + Game.Core/GameApp.cs | 99 ++--------------------------------- Game.Core/TestGameState.cs | 61 +++++++++++++++++++++ 4 files changed, 108 insertions(+), 95 deletions(-) create mode 100644 Game.Core/DebugInfoProcess.cs create mode 100644 Game.Core/TestGameState.cs diff --git a/Game.Core/DebugInfoProcess.cs b/Game.Core/DebugInfoProcess.cs new file mode 100644 index 0000000..8518445 --- /dev/null +++ b/Game.Core/DebugInfoProcess.cs @@ -0,0 +1,41 @@ +using System; +using System.Text; +using Blarg.GameFramework; +using Blarg.GameFramework.Events; +using Blarg.GameFramework.Graphics; +using Blarg.GameFramework.Processes; +using Blarg.GameFramework.Support; + +namespace Game +{ + public class DebugInfoProcess : GameProcess + { + StringBuilder _sb = new StringBuilder(1024); + SpriteBatch _spriteBatch; + + public DebugInfoProcess(ProcessManager processManager, EventManager eventManager) + : base(processManager, eventManager) + { + _spriteBatch = Framework.Services.Get(); + } + + public override void OnRender(float delta) + { + base.OnRender(delta); + + long gcmem = GC.GetTotalMemory(false); + _sb.Clear(); + _sb.Append("GC Mem Usage: ").AppendNumber((int)gcmem).Append('\n'); + _sb.Append("FPS: ").AppendNumber(Framework.Application.FPS); + _sb.Append(", ").AppendNumber(Framework.Application.FrameTime).Append(" ms"); + _sb.Append(", RT: ").AppendNumber(Framework.Application.RenderTime).Append(" (").AppendNumber(Framework.Application.RendersPerSecond).Append(")"); + _sb.Append(", UT: ").AppendNumber(Framework.Application.UpdateTime).Append(" (").AppendNumber(Framework.Application.UpdatesPerSecond).Append(")"); + _sb.Append(", RD: ").AppendNumber(delta); + + _spriteBatch.Begin(); + _spriteBatch.Render(Framework.GraphicsDevice.SansSerifFont, 10, 10, Color.White, _sb); + _spriteBatch.End(); + } + } +} + diff --git a/Game.Core/Game.Core.csproj b/Game.Core/Game.Core.csproj index bc2a2f9..471d83e 100644 --- a/Game.Core/Game.Core.csproj +++ b/Game.Core/Game.Core.csproj @@ -42,6 +42,8 @@ + + diff --git a/Game.Core/GameApp.cs b/Game.Core/GameApp.cs index 414de94..fc3ffef 100644 --- a/Game.Core/GameApp.cs +++ b/Game.Core/GameApp.cs @@ -8,103 +8,12 @@ using Blarg.GameFramework.Support; namespace Game { - public class GameApp : IGameApp + public class GameApp : BasicGameApp { - FlatWireframeGrid _grid; - FreeMovementCamera _camera; - SpriteBatch _spriteBatch; - StringBuilder _sb = new StringBuilder(1024); - - public GameApp() - { - } - - public void OnInit() - { - } - - public void OnShutdown() - { - } - - public void OnAppGainFocus() - { - } - - public void OnAppLostFocus() - { - } - - public void OnAppPause() - { - } - - public void OnAppResume() - { - } - - public void OnLoad() - { - _camera = new FreeMovementCamera(Framework.GraphicsDevice.ViewContext); - _camera.Position = new Vector3(0.0f, 5.0f, 0.0f); - Framework.GraphicsDevice.ViewContext.Camera = _camera; - - _grid = new FlatWireframeGrid(Framework.GraphicsDevice, 32, 32); - - _spriteBatch = new SpriteBatch(Framework.GraphicsDevice); - } - - public void OnUnload() - { - Framework.GraphicsDevice.ViewContext.Camera = null; - } - - public void OnLostContext() - { - } - - public void OnNewContext() - { - } - - public void OnRender(float delta) - { - Framework.GraphicsDevice.Clear(0.25f, 0.5f, 1.0f, 1.0f); - - var shader = Framework.GraphicsDevice.SimpleColorShader; - Framework.GraphicsDevice.BindShader(shader); - shader.SetModelViewMatrix(Framework.GraphicsDevice.ViewContext.ModelViewMatrix); - shader.SetProjectionMatrix(Framework.GraphicsDevice.ViewContext.ProjectionMatrix); - _grid.Render(); - Framework.GraphicsDevice.UnbindShader(); - - long gcmem = GC.GetTotalMemory(false); - _sb.Clear(); - _sb.Append("GC Mem Usage: ").AppendNumber((int)gcmem).Append('\n') - .Append("FPS: ").AppendNumber(Framework.Application.FPS) - .Append(", ").AppendNumber(Framework.Application.FrameTime).Append(" ms") - .Append(", RT: ").AppendNumber(Framework.Application.RenderTime).Append(" (").AppendNumber(Framework.Application.RendersPerSecond).Append(")") - .Append(", UT: ").AppendNumber(Framework.Application.UpdateTime).Append(" (").AppendNumber(Framework.Application.UpdatesPerSecond).Append(")") - .Append(", RD: ").AppendNumber(delta); - - _spriteBatch.Begin(); - _spriteBatch.Render(Framework.GraphicsDevice.SansSerifFont, 10, 10, Color.White, _sb); - _spriteBatch.End(); - } - - public void OnResize(ScreenOrientation orientation, Rect size) - { - } - - public void OnUpdate(float delta) - { - if (Framework.Keyboard.IsPressed(Blarg.GameFramework.Input.Key.Escape)) - Framework.Application.Quit(); - _camera.OnUpdate(delta); - } - - public void Dispose() + public override void OnLoad() { + base.OnLoad(); + StateManager.Push(); } } } diff --git a/Game.Core/TestGameState.cs b/Game.Core/TestGameState.cs new file mode 100644 index 0000000..ac15591 --- /dev/null +++ b/Game.Core/TestGameState.cs @@ -0,0 +1,61 @@ +using System; +using Blarg.GameFramework; +using Blarg.GameFramework.Events; +using Blarg.GameFramework.Graphics; +using Blarg.GameFramework.Graphics.Helpers; +using Blarg.GameFramework.Graphics.ScreenEffects; +using Blarg.GameFramework.States; +using Blarg.GameFramework.Support; + +namespace Game +{ + public class TestGameState : GameState + { + FlatWireframeGrid _grid; + FreeMovementCamera _camera; + + public TestGameState(StateManager stateManager, EventManager eventManager) + : base(stateManager, eventManager) + { + } + + public override void OnPush() + { + _camera = new FreeMovementCamera(Framework.GraphicsDevice.ViewContext); + _camera.Position = new Vector3(0.0f, 5.0f, 0.0f); + Framework.GraphicsDevice.ViewContext.Camera = _camera; + + _grid = new FlatWireframeGrid(Framework.GraphicsDevice, 32, 32); + + ProcessManager.Add(); + } + + public override void OnPop() + { + Framework.GraphicsDevice.ViewContext.Camera = null; + } + + public override void OnRender(float delta) + { + Framework.GraphicsDevice.Clear(0.25f, 0.5f, 1.0f, 1.0f); + + var shader = Framework.GraphicsDevice.SimpleColorShader; + Framework.GraphicsDevice.BindShader(shader); + shader.SetModelViewMatrix(Framework.GraphicsDevice.ViewContext.ModelViewMatrix); + shader.SetProjectionMatrix(Framework.GraphicsDevice.ViewContext.ProjectionMatrix); + _grid.Render(); + Framework.GraphicsDevice.UnbindShader(); + + base.OnRender(delta); + } + + public override void OnUpdate(float delta) + { + base.OnUpdate(delta); + if (Framework.Keyboard.IsPressed(Blarg.GameFramework.Input.Key.Escape)) + Framework.Application.Quit(); + _camera.OnUpdate(delta); + } + } +} +