1 #ifndef MSP_GAMEVIEW_APPLICATION_H_
2 #define MSP_GAMEVIEW_APPLICATION_H_
4 #include <msp/core/application.h>
5 #include <msp/game/director.h>
6 #include <msp/gl/device.h>
7 #include <msp/gl/windowview.h>
8 #include <msp/graphics/display.h>
9 #include <msp/graphics/window.h>
10 #include "playerinput.h"
11 #include "presenter.h"
13 namespace Msp::GameView {
15 template<typename T, typename R>
16 class Application: public Msp::RegisteredApplication<T>
19 using ResourcesType = R;
22 Graphics::Display display;
23 Graphics::Window window;
25 ResourcesType resources;
26 Game::Director director;
27 GL::WindowView gl_view;
29 PlayerInput player_input;
39 template<typename T, typename R>
40 Application<T, R>::Application():
41 window(display, 1920, 1080),
45 presenter(director, gl_view),
46 player_input(director, window)
48 window.set_keyboard_autorepeat(false);
49 window.signal_close.connect(sigc::bind(sigc::mem_fun(this, &Application::exit), 0));
52 template<typename T, typename R>
53 int Application<T, R>::main()
56 return Msp::Application::main();
59 template<typename T, typename R>
60 void Application<T, R>::tick()
66 } // namespace Msp::GameView