Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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);
            }
        }