static void Main(string[] args)
        {
            using (new AgateWinForms(args)
                   .Initialize())
                using (new DisplayWindowBuilder(args)
                       .Title("Event Driven Scene Example")
                       .BackbufferSize(1280, 720)
                       .AutoResizeBackBuffer()
                       .QuitOnClose()
                       .Build())
                {
                    // Create a Scene object for the title screen. When the enter key or
                    // the start button on the first gamepad is pressed, that will
                    // begin a new scene.
                    GamepadInputHandler titleInputHandler = NewInputHandler();

                    Scene titleScene = new Scene {
                        InputHandler = titleInputHandler
                    };

                    titleInputHandler.Gamepads.First().ButtonPressed += (sender, e) =>
                    {
                        if (e.Button == GamepadButton.Start)
                        {
                            CreateGameScene(titleScene.SceneStack);
                        }
                        else if (e.Button == GamepadButton.Back)
                        {
                            titleScene.IsFinished = true;
                        }
                    };

                    var font = new Font(Font.AgateSans)
                    {
                        Size  = 22,
                        Style = FontStyles.Bold
                    };

                    titleScene.Redraw += (sender, eventArgs) =>
                    {
                        Display.Clear(Color.Maroon);
                        font.DrawText(0, 0, "Press enter to begin game, escape to quit.");
                    };

                    var stack = new SceneStack();

                    stack.Start(titleScene);
                }
        }