diff --git a/Game.Core/GameApp.cs b/Game.Core/GameApp.cs index 60c1072..b5624c6 100644 --- a/Game.Core/GameApp.cs +++ b/Game.Core/GameApp.cs @@ -2,11 +2,16 @@ using System; using PortableGL; using Blarg.GameFramework; using Blarg.GameFramework.Graphics; +using Blarg.GameFramework.Graphics.Helpers; +using Blarg.GameFramework.Support; namespace Game { public class GameApp : IGameApp { + FlatWireframeGrid _grid; + FreeMovementCamera _camera; + public GameApp() { } @@ -29,10 +34,16 @@ namespace Game public void OnLoad() { + _camera = new FreeMovementCamera(Platform.GraphicsDevice.ViewContext); + _camera.Position = new Vector3(0.0f, 5.0f, 0.0f); + Platform.GraphicsDevice.ViewContext.Camera = _camera; + + _grid = new FlatWireframeGrid(Platform.GraphicsDevice, 32, 32); } public void OnUnload() { + Platform.GraphicsDevice.ViewContext.Camera = null; } public void OnLostContext() @@ -46,6 +57,13 @@ namespace Game public void OnRender(float delta) { Platform.GraphicsDevice.Clear(0.25f, 0.5f, 1.0f, 1.0f); + + var shader = Platform.GraphicsDevice.SimpleColorShader; + Platform.GraphicsDevice.BindShader(shader); + shader.SetModelViewMatrix(Platform.GraphicsDevice.ViewContext.ModelViewMatrix); + shader.SetProjectionMatrix(Platform.GraphicsDevice.ViewContext.ProjectionMatrix); + _grid.Render(); + Platform.GraphicsDevice.UnbindShader(); } public void OnResize(ScreenOrientation orientation, Rect size) @@ -56,6 +74,7 @@ namespace Game { if (Platform.Keyboard.IsPressed(Blarg.GameFramework.Input.Key.Escape)) Platform.Application.Quit(); + _camera.OnUpdate(delta); } public void Dispose()