19 #ifndef SIMULANT_WINDOW_H_INCLUDED
20 #define SIMULANT_WINDOW_H_INCLUDED
25 #if defined(__WIN32__)
28 #include "sdl2_keycodes.h"
29 #include "generic/managed.h"
34 int event_filter(
void* user_data, SDL_Event* event);
40 return Window::create<SDL2Window>(app);
46 void set_title(
const std::string& title)
override;
47 void show_cursor(
bool value=
true)
override;
48 void lock_cursor(
bool cursor_locked=
true)
override;
49 void cursor_position(int32_t& mouse_x, int32_t& mouse_y)
override;
52 bool _init_window()
override;
53 bool _init_renderer(
Renderer* renderer)
override;
56 SDL_GLContext context_;
58 void destroy_window()
override;
60 void check_events()
override;
61 void swap_buffers()
override;
63 friend int event_filter(
void* user_data, SDL_Event* event);
65 void denormalize(
float x,
float y,
int& xout,
int& yout);
67 std::shared_ptr<SoundDriver> create_sound_driver(
const std::string &from_config)
override;
69 void initialize_input_controller(
InputState &controller)
override;
70 std::vector<GameControllerInfo> detect_game_controllers();
73 void initialize_virtual_screen(uint16_t width, uint16_t height, ScreenFormat format, uint16_t integer_scale);
75 std::vector<SDL_Joystick*> open_joysticks_;
76 std::vector<SDL_GameController*> open_controllers_;
78 bool initialize_screen(
Screen *screen)
override;
79 void shutdown_screen(
Screen* screen)
override;
80 void render_screen(
Screen* screen,
const uint8_t* data,
int row_stride)
override;
83 virtual void game_controller_stop_rumble(
GameController* controller)
override;
90 #endif // WINDOW_H_INCLUDED