/// <summary> /// Get Screen by ID /// </summary> /// <param name="id">The Screen ID to get</param> /// <returns></returns> public static ScreenBase GetScreen(ScreenIds id) { foreach (var s in _screens) { if (s.ID == id) { return(s); } } return(null); }
/// <summary> /// Change Screen and Draw the new Screen. Calls OnScreenChanged Signal /// </summary> /// <param name="id">The new Screen to Draw</param> public static void ChangeScreen(ScreenIds id) { var screen = GetScreen(id); OnScreenChanged?.Invoke(CurrentScreen); CurrentScreen = screen; if (screen != null) { screen.Init(); Clear(0x00555555); var gc = GraphicContext.FromBuffer(VBEDisplay.Framebuffer); screen.Draw(gc); } }