mirror of
https://github.com/libretro/RetroArch
synced 2025-04-16 08:43:10 +00:00
commit
b6f9681373
16
command.c
16
command.c
@ -1957,6 +1957,10 @@ bool command_event(enum event_command cmd, void *data)
|
|||||||
cheevos_toggle_hardcore_mode();
|
cheevos_toggle_hardcore_mode();
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
/* this fallthrough is on purpose, it should do
|
||||||
|
a CMD_EVENT_REINIT too */
|
||||||
|
case CMD_EVENT_REINIT_FROM_TOGGLE:
|
||||||
|
retroarch_unset_forced_fullscreen();
|
||||||
case CMD_EVENT_REINIT:
|
case CMD_EVENT_REINIT:
|
||||||
video_driver_reinit();
|
video_driver_reinit();
|
||||||
/* Poll input to avoid possibly stale data to corrupt things. */
|
/* Poll input to avoid possibly stale data to corrupt things. */
|
||||||
@ -2567,15 +2571,21 @@ TODO: Add a setting for these tweaks */
|
|||||||
case CMD_EVENT_FULLSCREEN_TOGGLE:
|
case CMD_EVENT_FULLSCREEN_TOGGLE:
|
||||||
{
|
{
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
bool new_fullscreen_state = !settings->bools.video_fullscreen;
|
bool new_fullscreen_state = !settings->bools.video_fullscreen
|
||||||
|
&& !retroarch_is_forced_fullscreen();
|
||||||
if (!video_driver_has_windowed())
|
if (!video_driver_has_windowed())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
/* If we go fullscreen we drop all drivers and
|
/* we toggled manually, write the new value to settings */
|
||||||
* reinitialize to be safe. */
|
|
||||||
configuration_set_bool(settings, settings->bools.video_fullscreen,
|
configuration_set_bool(settings, settings->bools.video_fullscreen,
|
||||||
new_fullscreen_state);
|
new_fullscreen_state);
|
||||||
|
|
||||||
|
/* we toggled manually, the cli arg is irrelevant now */
|
||||||
|
if (retroarch_is_forced_fullscreen())
|
||||||
|
retroarch_unset_forced_fullscreen();
|
||||||
|
|
||||||
|
/* If we go fullscreen we drop all drivers and
|
||||||
|
* reinitialize to be safe. */
|
||||||
command_event(CMD_EVENT_REINIT, NULL);
|
command_event(CMD_EVENT_REINIT, NULL);
|
||||||
if (settings->bools.video_fullscreen)
|
if (settings->bools.video_fullscreen)
|
||||||
video_driver_hide_mouse();
|
video_driver_hide_mouse();
|
||||||
|
@ -61,6 +61,8 @@ enum event_command
|
|||||||
/* Quits RetroArch. */
|
/* Quits RetroArch. */
|
||||||
CMD_EVENT_QUIT,
|
CMD_EVENT_QUIT,
|
||||||
/* Reinitialize all drivers. */
|
/* Reinitialize all drivers. */
|
||||||
|
CMD_EVENT_REINIT_FROM_TOGGLE,
|
||||||
|
/* Reinitialize all drivers. */
|
||||||
CMD_EVENT_REINIT,
|
CMD_EVENT_REINIT,
|
||||||
/* Toggles cheevos hardcore mode. */
|
/* Toggles cheevos hardcore mode. */
|
||||||
CMD_EVENT_CHEEVOS_HARDCORE_MODE_TOGGLE,
|
CMD_EVENT_CHEEVOS_HARDCORE_MODE_TOGGLE,
|
||||||
|
@ -1578,11 +1578,6 @@ static void config_set_defaults(void)
|
|||||||
#endif
|
#endif
|
||||||
settings->floats.video_scale = scale;
|
settings->floats.video_scale = scale;
|
||||||
|
|
||||||
if (retroarch_is_forced_fullscreen())
|
|
||||||
{
|
|
||||||
configuration_set_bool(settings, settings->bools.video_fullscreen, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (g_defaults.settings.video_threaded_enable != video_threaded)
|
if (g_defaults.settings.video_threaded_enable != video_threaded)
|
||||||
video_driver_set_threaded(g_defaults.settings.video_threaded_enable);
|
video_driver_set_threaded(g_defaults.settings.video_threaded_enable);
|
||||||
|
|
||||||
@ -2377,9 +2372,6 @@ static bool config_load_file(const char *path, bool set_defaults,
|
|||||||
*bool_settings[i].ptr = tmp;
|
*bool_settings[i].ptr = tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!retroarch_is_forced_fullscreen())
|
|
||||||
CONFIG_GET_BOOL_BASE(conf, settings, bools.video_fullscreen, "video_fullscreen");
|
|
||||||
|
|
||||||
#ifdef HAVE_NETWORKGAMEPAD
|
#ifdef HAVE_NETWORKGAMEPAD
|
||||||
for (i = 0; i < MAX_USERS; i++)
|
for (i = 0; i < MAX_USERS; i++)
|
||||||
{
|
{
|
||||||
|
@ -955,7 +955,7 @@ static bool video_driver_init_internal(bool *video_is_threaded)
|
|||||||
video_driver_set_aspect_ratio_value(
|
video_driver_set_aspect_ratio_value(
|
||||||
aspectratio_lut[settings->uints.video_aspect_ratio_idx].value);
|
aspectratio_lut[settings->uints.video_aspect_ratio_idx].value);
|
||||||
|
|
||||||
if (settings->bools.video_fullscreen)
|
if (settings->bools.video_fullscreen|| retroarch_is_forced_fullscreen())
|
||||||
{
|
{
|
||||||
width = settings->uints.video_fullscreen_x;
|
width = settings->uints.video_fullscreen_x;
|
||||||
height = settings->uints.video_fullscreen_y;
|
height = settings->uints.video_fullscreen_y;
|
||||||
@ -999,7 +999,7 @@ static bool video_driver_init_internal(bool *video_is_threaded)
|
|||||||
|
|
||||||
video.width = width;
|
video.width = width;
|
||||||
video.height = height;
|
video.height = height;
|
||||||
video.fullscreen = settings->bools.video_fullscreen;
|
video.fullscreen = settings->bools.video_fullscreen || retroarch_is_forced_fullscreen();
|
||||||
video.vsync = settings->bools.video_vsync && !rarch_ctl(RARCH_CTL_IS_NONBLOCK_FORCED, NULL);
|
video.vsync = settings->bools.video_vsync && !rarch_ctl(RARCH_CTL_IS_NONBLOCK_FORCED, NULL);
|
||||||
video.force_aspect = settings->bools.video_force_aspect;
|
video.force_aspect = settings->bools.video_force_aspect;
|
||||||
video.font_enable = settings->bools.video_font_enable;
|
video.font_enable = settings->bools.video_font_enable;
|
||||||
@ -2515,7 +2515,7 @@ void video_driver_build_info(video_frame_info_t *video_info)
|
|||||||
video_info->post_filter_record = settings->bools.video_post_filter_record;
|
video_info->post_filter_record = settings->bools.video_post_filter_record;
|
||||||
video_info->max_swapchain_images = settings->uints.video_max_swapchain_images;
|
video_info->max_swapchain_images = settings->uints.video_max_swapchain_images;
|
||||||
video_info->windowed_fullscreen = settings->bools.video_windowed_fullscreen;
|
video_info->windowed_fullscreen = settings->bools.video_windowed_fullscreen;
|
||||||
video_info->fullscreen = settings->bools.video_fullscreen;
|
video_info->fullscreen = settings->bools.video_fullscreen || retroarch_is_forced_fullscreen();
|
||||||
video_info->monitor_index = settings->uints.video_monitor_index;
|
video_info->monitor_index = settings->uints.video_monitor_index;
|
||||||
video_info->shared_context = settings->bools.video_shared_context;
|
video_info->shared_context = settings->bools.video_shared_context;
|
||||||
|
|
||||||
|
@ -1670,7 +1670,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_FORCE_SRGB_DISABLE,
|
|||||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_FRAME_DELAY,
|
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_FRAME_DELAY,
|
||||||
"Frame Delay")
|
"Frame Delay")
|
||||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_FULLSCREEN,
|
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_FULLSCREEN,
|
||||||
"Use Fullscreen Mode")
|
"Start in Fullscreen Mode")
|
||||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_GAMMA,
|
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_GAMMA,
|
||||||
"Video Gamma")
|
"Video Gamma")
|
||||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_GPU_RECORD,
|
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_GPU_RECORD,
|
||||||
@ -2618,7 +2618,7 @@ MSG_HASH(
|
|||||||
)
|
)
|
||||||
MSG_HASH(
|
MSG_HASH(
|
||||||
MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN,
|
MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN,
|
||||||
"Start in fullscreen. Can be changed at runtime."
|
"Start in fullscreen. Can be changed at runtime. Can be overriden by a command line switch"
|
||||||
)
|
)
|
||||||
MSG_HASH(
|
MSG_HASH(
|
||||||
MENU_ENUM_SUBLABEL_VIDEO_WINDOWED_FULLSCREEN,
|
MENU_ENUM_SUBLABEL_VIDEO_WINDOWED_FULLSCREEN,
|
||||||
|
@ -3354,7 +3354,7 @@ static bool setting_append_list(
|
|||||||
general_write_handler,
|
general_write_handler,
|
||||||
general_read_handler,
|
general_read_handler,
|
||||||
SD_FLAG_CMD_APPLY_AUTO);
|
SD_FLAG_CMD_APPLY_AUTO);
|
||||||
menu_settings_list_current_add_cmd(list, list_info, CMD_EVENT_REINIT);
|
menu_settings_list_current_add_cmd(list, list_info, CMD_EVENT_REINIT_FROM_TOGGLE);
|
||||||
settings_data_list_current_add_flags(list, list_info, SD_FLAG_LAKKA_ADVANCED);
|
settings_data_list_current_add_flags(list, list_info, SD_FLAG_LAKKA_ADVANCED);
|
||||||
}
|
}
|
||||||
if (video_driver_has_windowed())
|
if (video_driver_has_windowed())
|
||||||
|
@ -1106,8 +1106,6 @@ static bool retroarch_init_state(void)
|
|||||||
video_driver_set_active();
|
video_driver_set_active();
|
||||||
audio_driver_set_active();
|
audio_driver_set_active();
|
||||||
|
|
||||||
rarch_force_fullscreen = false;
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1443,7 +1441,6 @@ bool rarch_ctl(enum rarch_ctl_state state, void *data)
|
|||||||
rarch_is_inited = false;
|
rarch_is_inited = false;
|
||||||
rarch_error_on_init = false;
|
rarch_error_on_init = false;
|
||||||
rarch_block_config_read = false;
|
rarch_block_config_read = false;
|
||||||
rarch_force_fullscreen = false;
|
|
||||||
|
|
||||||
retroarch_msg_queue_deinit();
|
retroarch_msg_queue_deinit();
|
||||||
driver_uninit(DRIVERS_CMD_ALL);
|
driver_uninit(DRIVERS_CMD_ALL);
|
||||||
@ -1922,6 +1919,11 @@ bool retroarch_is_forced_fullscreen(void)
|
|||||||
return rarch_force_fullscreen;
|
return rarch_force_fullscreen;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void retroarch_unset_forced_fullscreen(void)
|
||||||
|
{
|
||||||
|
rarch_force_fullscreen = false;
|
||||||
|
}
|
||||||
|
|
||||||
bool retroarch_override_setting_is_set(enum rarch_override_setting enum_idx, void *data)
|
bool retroarch_override_setting_is_set(enum rarch_override_setting enum_idx, void *data)
|
||||||
{
|
{
|
||||||
switch (enum_idx)
|
switch (enum_idx)
|
||||||
|
@ -289,6 +289,8 @@ bool retroarch_validate_game_options(char *s, size_t len, bool mkdir);
|
|||||||
|
|
||||||
bool retroarch_is_forced_fullscreen(void);
|
bool retroarch_is_forced_fullscreen(void);
|
||||||
|
|
||||||
|
void retroarch_unset_forced_fullscreen(void);
|
||||||
|
|
||||||
void retroarch_set_current_core_type(enum rarch_core_type type, bool explicitly_set);
|
void retroarch_set_current_core_type(enum rarch_core_type type, bool explicitly_set);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user