mirror of
https://gitlab.com/dosowisko.net/libsuperderpy.git
synced 2024-12-05 00:38:00 +01:00
params: Add an option to not hide system cursor; toggle cursor with fullscreen
This commit is contained in:
parent
f68eab53f7
commit
6d7f6c6450
3 changed files with 9 additions and 1 deletions
|
@ -358,7 +358,7 @@ SYMBOL_EXPORT struct Game* libsuperderpy_init(int argc, char** argv, const char*
|
||||||
al_destroy_bitmap(icon);
|
al_destroy_bitmap(icon);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (game->config.fullscreen || IS_POCKETCHIP) {
|
if (!game->_priv.params.show_cursor && (game->config.fullscreen || IS_POCKETCHIP)) {
|
||||||
al_hide_mouse_cursor(game->display);
|
al_hide_mouse_cursor(game->display);
|
||||||
}
|
}
|
||||||
al_inhibit_screensaver(true);
|
al_inhibit_screensaver(true);
|
||||||
|
|
|
@ -149,6 +149,7 @@ struct Params {
|
||||||
bool disable_bg_clear; /*!< If set to true, the gamestate framebuffer won't be cleared to background color before calling Gamestate_Draw. */
|
bool disable_bg_clear; /*!< If set to true, the gamestate framebuffer won't be cleared to background color before calling Gamestate_Draw. */
|
||||||
bool fixed_size; /*!< If set to true, the game's window will not be resizable. */
|
bool fixed_size; /*!< If set to true, the game's window will not be resizable. */
|
||||||
bool no_autopause; /*!< If set to true, engine autopause is forced to be disabled. */
|
bool no_autopause; /*!< If set to true, engine autopause is forced to be disabled. */
|
||||||
|
bool show_cursor; /*!< If set to true, system cursor won't be hidden in fullscreen. */
|
||||||
int samples; /*!< How many samples should be used for multisampling; 0 to disable. */
|
int samples; /*!< How many samples should be used for multisampling; 0 to disable. */
|
||||||
int sample_rate; /*!< Default sample rate of audio output; 0 to use engine default. */
|
int sample_rate; /*!< Default sample rate of audio output; 0 to use engine default. */
|
||||||
char* window_title; /*!< A title of the game's window. When NULL, al_get_app_name() is used. */
|
char* window_title; /*!< A title of the game's window. When NULL, al_get_app_name() is used. */
|
||||||
|
|
|
@ -759,6 +759,13 @@ SYMBOL_EXPORT bool ToggleFullscreen(struct Game* game) {
|
||||||
al_set_display_flag(game->display, ALLEGRO_FULLSCREEN_WINDOW, game->config.fullscreen);
|
al_set_display_flag(game->display, ALLEGRO_FULLSCREEN_WINDOW, game->config.fullscreen);
|
||||||
SetupViewport(game);
|
SetupViewport(game);
|
||||||
PrintConsole(game, "Fullscreen toggled: %s", game->config.fullscreen ? "on" : "off");
|
PrintConsole(game, "Fullscreen toggled: %s", game->config.fullscreen ? "on" : "off");
|
||||||
|
if (!game->_priv.params.show_cursor) {
|
||||||
|
if (game->config.fullscreen) {
|
||||||
|
al_hide_mouse_cursor(game->display);
|
||||||
|
} else {
|
||||||
|
al_show_mouse_cursor(game->display);
|
||||||
|
}
|
||||||
|
}
|
||||||
return game->config.fullscreen;
|
return game->config.fullscreen;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue