private static void OnRendererRemoved() { GameLoop loop = TryQueryComponent <GameLoop>(); if (loop != null && loop.IsRunning) { throw new InvalidOperationException("The renderer cannot be removed while the game loop is running."); } }
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); var logFile = new LogFile(@"..\..\log.txt", false, LogMessagePriority.Engine); GameEngine.RegisterComponent(logFile); var loop = new GameLoop(60); GameEngine.RegisterComponent(loop); var window = new GameWindow(); GameEngine.RegisterComponent(window); var renderer = new Renderer(window, AntiAliasingMode._16xQCSAA); //renderer.Transform = Matrix2x3.Translation(50, 50); renderer.SyncInterval = 2; GameEngine.RegisterComponent(renderer); //var intro = new EngineIntro(); //var introHandle = loop.Register(intro); //intro.AnimationComplete += (sender, e) => //{ // introHandle.Dispose(); loop.Register(new Tester()); //}; //var keyboard = new Keyboard(); //GameEngine.RegisterComponent(keyboard); //keyboard.Initialize(window); //keyboard.RegisterListener(window); //keyboard.BeginCapture(); loop.Start(); window.Closing += (sender, e) => { //keyboard.EndCapture(); loop.Stop(); logFile.Close(); renderer.Dispose(); }; Application.Run(window); }
private static void OnComponentRemoved(IEngineComponent component) { GameLoop loop = component as GameLoop; if (loop != null) { OnGameLoopRemoved(loop); } if (component is Renderer) { OnRendererRemoved(); } Logger logger = component as Logger; if (logger != null) { OnLoggerRemoved(logger); } }
private static void OnComponentAdded(IEngineComponent component) { GameLoop loop = component as GameLoop; if (loop != null) { OnGameLoopAdded(loop); } Renderer renderer = component as Renderer; if (renderer != null) { OnRendererAdded(renderer); } Logger logger = component as Logger; if (logger != null) { OnLoggerAdded(logger); } }
private static void OnGameLoopRemoved(GameLoop loop) { loop.ResourceUpdateRequested -= GameLoop_ResourceUpdateRequested; }
private static void OnGameLoopAdded(GameLoop loop) { loop.ResourceUpdateRequested += GameLoop_ResourceUpdateRequested; }