/// <summary> /// Prepares the engine for use. This must be the first method you call on the engine when you provide your own <see cref="GraphicsDeviceManager"/>. /// </summary> /// <param name="deviceManager">The graphics device manager from MonoGame.</param> /// <param name="font">The font to load as the <see cref="DefaultFont"/>.</param> /// <param name="consoleWidth">The width of the default root console (and game window).</param> /// <param name="consoleHeight">The height of the default root console (and game window).</param> /// <returns>The default active console.</returns> public static Consoles.Console Initialize(GraphicsDeviceManager deviceManager, string font, int consoleWidth, int consoleHeight) { if (Device == null) { Device = deviceManager.GraphicsDevice; } SetupFontAndEffects(font); DeviceManager = deviceManager; DefaultFont.ResizeGraphicsDeviceManager(deviceManager, consoleWidth, consoleHeight, 0, 0); // Create the default console. ActiveConsole = new Consoles.Console(consoleWidth, consoleHeight); ActiveConsole.TextSurface.DefaultBackground = Color.Black; ActiveConsole.TextSurface.DefaultForeground = ColorAnsi.White; ((Consoles.Console)ActiveConsole).Clear(); ConsoleRenderStack.Add(ActiveConsole); renderBatch = new SpriteBatch(Device); ResetRendering(); return((Consoles.Console)ActiveConsole); }
public static void Draw(GameTime gameTime) { GameTimeElapsedRender = gameTime.ElapsedGameTime.TotalSeconds; GameTimeDraw = gameTime; ConsoleRenderStack.Render(); EngineDrawFrame?.Invoke(null, System.EventArgs.Empty); }
private static Consoles.Console SetupStartingConsole(int consoleWidth, int consoleHeight) { ActiveConsole = new Consoles.Console(consoleWidth, consoleHeight); ActiveConsole.TextSurface.DefaultBackground = Color.Black; ActiveConsole.TextSurface.DefaultForeground = ColorAnsi.White; ((Consoles.Console)ActiveConsole).Clear(); ConsoleRenderStack.Add(ActiveConsole); return((Consoles.Console)ActiveConsole); }
public static void Update(GameTime gameTime, bool windowIsActive) { GameTimeElapsedUpdate = gameTime.ElapsedGameTime.TotalSeconds; GameTimeUpdate = gameTime; if (DoUpdate) { if (windowIsActive) { if (UseKeyboard) { Keyboard.ProcessKeys(GameTimeUpdate); } if (UseMouse) { Mouse.ProcessMouse(GameTimeUpdate); if (ProcessMouseWhenOffScreen || (Mouse.ScreenLocation.X >= 0 && Mouse.ScreenLocation.Y >= 0 && Mouse.ScreenLocation.X < WindowWidth && Mouse.ScreenLocation.Y < WindowHeight)) { if (_activeConsole != null && _activeConsole.ExclusiveFocus) { _activeConsole.ProcessMouse(Mouse); } else { ConsoleRenderStack.ProcessMouse(Mouse); } } else { // DOUBLE CHECK if mouse left screen then we should stop kill off lastmouse if (LastMouseConsole != null) { Engine.LastMouseConsole.ProcessMouse(Mouse); Engine.LastMouseConsole = null; } } } if (_activeConsole != null) { _activeConsole.ProcessKeyboard(Keyboard); } } ConsoleRenderStack.Update(); } EngineUpdated?.Invoke(null, System.EventArgs.Empty); }
public static void Draw(GameTime gameTime) { GameTimeElapsedRender = gameTime.ElapsedGameTime.TotalSeconds; GameTimeDraw = gameTime; if (DoRender) { Device.SetRenderTarget(renderTarget); ConsoleRenderStack.Render(); Device.SetRenderTarget(null); // Render based on full screen settings renderBatch.Begin(SpriteSortMode.Deferred, BlendState.NonPremultiplied, SamplerState.PointClamp, DepthStencilState.DepthRead, RasterizerState.CullNone); renderBatch.Draw(renderTarget, RenderRect, Color.White); renderBatch.End(); } EngineDrawFrame?.Invoke(null, System.EventArgs.Empty); }