1
0
mirror of https://github.com/libretro/RetroArch synced 2024-07-08 12:15:49 +00:00

Move more related to core to runloop_state

This commit is contained in:
twinaphex 2021-10-14 21:47:35 +02:00
parent bf2c3902d4
commit ba19dc3140
3 changed files with 51 additions and 46 deletions

View File

@ -3685,14 +3685,14 @@ static bool path_init_subsystem(struct rarch_state *p_rarch)
return true; return true;
} }
static void path_init_savefile(struct rarch_state *p_rarch) static void path_init_savefile(runloop_state_t *runloop_st)
{ {
bool should_sram_be_used = p_rarch->rarch_use_sram bool should_sram_be_used = runloop_st->use_sram
&& !p_rarch->rarch_is_sram_save_disabled; && !runloop_st->is_sram_save_disabled;
p_rarch->rarch_use_sram = should_sram_be_used; runloop_st->use_sram = should_sram_be_used;
if (!p_rarch->rarch_use_sram) if (!runloop_st->use_sram)
{ {
RARCH_LOG("[SRAM]: %s\n", RARCH_LOG("[SRAM]: %s\n",
msg_hash_to_str(MSG_SRAM_WILL_NOT_BE_SAVED)); msg_hash_to_str(MSG_SRAM_WILL_NOT_BE_SAVED));
@ -5780,13 +5780,14 @@ static bool command_event_disk_control_append_image(
rarch_system_info_t *sys_info, rarch_system_info_t *sys_info,
const char *path) const char *path)
{ {
runloop_state_t *runloop_st = &runloop_state;
input_driver_state_t *input_st = input_state_get_ptr(); input_driver_state_t *input_st = input_state_get_ptr();
if ( !sys_info || if ( !sys_info ||
!disk_control_append_image(&sys_info->disk_control, path)) !disk_control_append_image(&sys_info->disk_control, path))
return false; return false;
#ifdef HAVE_THREADS #ifdef HAVE_THREADS
if (p_rarch->rarch_use_sram) if (runloop_st->use_sram)
autosave_deinit(); autosave_deinit();
#endif #endif
@ -5877,6 +5878,7 @@ static bool event_init_content(
struct rarch_state *p_rarch, struct rarch_state *p_rarch,
input_driver_state_t *input_st) input_driver_state_t *input_st)
{ {
runloop_state_t *runloop_st = &runloop_state;
bool contentless = false; bool contentless = false;
bool is_inited = false; bool is_inited = false;
#ifdef HAVE_CHEEVOS #ifdef HAVE_CHEEVOS
@ -5890,7 +5892,7 @@ static bool event_init_content(
content_get_status(&contentless, &is_inited); content_get_status(&contentless, &is_inited);
p_rarch->rarch_use_sram = (current_core_type == CORE_TYPE_PLAIN); runloop_st->use_sram = (current_core_type == CORE_TYPE_PLAIN);
/* No content to be loaded for dummy core, /* No content to be loaded for dummy core,
* just successfully exit. */ * just successfully exit. */
@ -5914,7 +5916,7 @@ static bool event_init_content(
command_event_set_savestate_auto_index(settings, global); command_event_set_savestate_auto_index(settings, global);
if (!event_load_save_files(p_rarch->rarch_is_sram_load_disabled)) if (!event_load_save_files(runloop_st->is_sram_load_disabled))
RARCH_LOG("[SRAM]: %s\n", RARCH_LOG("[SRAM]: %s\n",
msg_hash_to_str(MSG_SKIPPING_SRAM_LOAD)); msg_hash_to_str(MSG_SKIPPING_SRAM_LOAD));
@ -6869,6 +6871,7 @@ bool command_event(enum event_command cmd, void *data)
{ {
bool boolean = false; bool boolean = false;
struct rarch_state *p_rarch = &rarch_st; struct rarch_state *p_rarch = &rarch_st;
runloop_state_t *runloop_st = &runloop_state;
#ifdef HAVE_MENU #ifdef HAVE_MENU
struct menu_state *menu_st = menu_state_get_ptr(); struct menu_state *menu_st = menu_state_get_ptr();
#endif #endif
@ -6879,7 +6882,7 @@ bool command_event(enum event_command cmd, void *data)
switch (cmd) switch (cmd)
{ {
case CMD_EVENT_SAVE_FILES: case CMD_EVENT_SAVE_FILES:
event_save_files(p_rarch->rarch_use_sram); event_save_files(runloop_st->use_sram);
break; break;
case CMD_EVENT_OVERLAY_DEINIT: case CMD_EVENT_OVERLAY_DEINIT:
#ifdef HAVE_OVERLAY #ifdef HAVE_OVERLAY
@ -7433,7 +7436,7 @@ bool command_event(enum event_command cmd, void *data)
break; break;
case CMD_EVENT_AUTOSAVE_INIT: case CMD_EVENT_AUTOSAVE_INIT:
#ifdef HAVE_THREADS #ifdef HAVE_THREADS
if (p_rarch->rarch_use_sram) if (runloop_st->use_sram)
autosave_deinit(); autosave_deinit();
{ {
#ifdef HAVE_NETWORKING #ifdef HAVE_NETWORKING
@ -8893,9 +8896,9 @@ static void global_free(struct rarch_state *p_rarch)
retro_main_log_file_deinit(); retro_main_log_file_deinit();
p_rarch->rarch_is_sram_load_disabled = false; runloop_st->is_sram_load_disabled = false;
p_rarch->rarch_is_sram_save_disabled = false; runloop_st->is_sram_save_disabled = false;
p_rarch->rarch_use_sram = false; runloop_st->use_sram = false;
#ifdef HAVE_PATCH #ifdef HAVE_PATCH
p_rarch->rarch_bps_pref = false; p_rarch->rarch_bps_pref = false;
p_rarch->rarch_ips_pref = false; p_rarch->rarch_ips_pref = false;
@ -10095,9 +10098,9 @@ static bool retroarch_environment_cb(unsigned cmd, void *data)
struct rarch_state *p_rarch = &rarch_st; struct rarch_state *p_rarch = &rarch_st;
runloop_state_t *runloop_st = &runloop_state; runloop_state_t *runloop_st = &runloop_state;
settings_t *settings = p_rarch->configuration_settings; settings_t *settings = config_get_ptr();
rarch_system_info_t *system = &runloop_st->system; rarch_system_info_t *system = &runloop_st->system;
bool ignore_environment_cb = p_rarch->ignore_environment_cb; bool ignore_environment_cb = runloop_st->ignore_environment_cb;
if (ignore_environment_cb) if (ignore_environment_cb)
return false; return false;
@ -11651,7 +11654,7 @@ static bool retroarch_environment_cb(unsigned cmd, void *data)
return false; return false;
#else #else
RARCH_LOG("[Environ]: SET_HW_SHARED_CONTEXT.\n"); RARCH_LOG("[Environ]: SET_HW_SHARED_CONTEXT.\n");
p_rarch->core_set_shared_context = true; runloop_st->core_set_shared_context = true;
#endif #endif
break; break;
@ -12002,6 +12005,7 @@ static void libretro_get_environment_info(
bool *load_no_content) bool *load_no_content)
{ {
struct rarch_state *p_rarch = &rarch_st; struct rarch_state *p_rarch = &rarch_st;
runloop_state_t *runloop_st = &runloop_state;
p_rarch->load_no_content_hook = load_no_content; p_rarch->load_no_content_hook = load_no_content;
@ -12014,9 +12018,9 @@ static void libretro_get_environment_info(
* Make sure we reset it to the actual environment callback. * Make sure we reset it to the actual environment callback.
* Ignore any environment callbacks here in case we're running * Ignore any environment callbacks here in case we're running
* on the non-current core. */ * on the non-current core. */
p_rarch->ignore_environment_cb = true; runloop_st->ignore_environment_cb = true;
func(retroarch_environment_cb); func(retroarch_environment_cb);
p_rarch->ignore_environment_cb = false; runloop_st->ignore_environment_cb = false;
} }
static dylib_t load_dynamic_core( static dylib_t load_dynamic_core(
@ -12150,9 +12154,9 @@ static bool libretro_get_system_info(
* Make sure we reset it to the actual environment callback. * Make sure we reset it to the actual environment callback.
* Ignore any environment callbacks here in case we're running * Ignore any environment callbacks here in case we're running
* on the non-current core. */ * on the non-current core. */
p_rarch->ignore_environment_cb = true; runloop_st->ignore_environment_cb = true;
retro_set_environment(retroarch_environment_cb); retro_set_environment(retroarch_environment_cb);
p_rarch->ignore_environment_cb = false; runloop_st->ignore_environment_cb = false;
} }
retro_get_system_info(&dummy_info); retro_get_system_info(&dummy_info);
@ -12330,9 +12334,8 @@ static bool init_libretro_symbols(
bool libretro_get_shared_context(void) bool libretro_get_shared_context(void)
{ {
struct rarch_state *p_rarch = &rarch_st; runloop_state_t *runloop_st = &runloop_state;
bool core_set_shared_context = p_rarch->core_set_shared_context; return runloop_st->core_set_shared_context;
return core_set_shared_context;
} }
/** /**
@ -12348,6 +12351,8 @@ static void uninit_libretro_symbols(
struct rarch_state *p_rarch, struct rarch_state *p_rarch,
struct retro_core_t *current_core) struct retro_core_t *current_core)
{ {
runloop_state_t
*runloop_st = &runloop_state;
input_driver_state_t input_driver_state_t
*input_st = input_state_get_ptr(); *input_st = input_state_get_ptr();
audio_driver_state_t audio_driver_state_t
@ -12360,7 +12365,7 @@ static void uninit_libretro_symbols(
memset(current_core, 0, sizeof(struct retro_core_t)); memset(current_core, 0, sizeof(struct retro_core_t));
p_rarch->core_set_shared_context = false; runloop_st->core_set_shared_context = false;
if (runloop_state.core_options) if (runloop_state.core_options)
{ {
@ -15299,7 +15304,7 @@ void video_driver_get_window_title(char *buf, unsigned len)
#ifdef HAVE_VULKAN #ifdef HAVE_VULKAN
static const gfx_ctx_driver_t *vk_context_driver_init_first( static const gfx_ctx_driver_t *vk_context_driver_init_first(
struct rarch_state *p_rarch, runloop_state_t *runloop_st,
settings_t *settings, settings_t *settings,
void *data, void *data,
const char *ident, enum gfx_ctx_api api, unsigned major, const char *ident, enum gfx_ctx_api api, unsigned major,
@ -15321,7 +15326,7 @@ static const gfx_ctx_driver_t *vk_context_driver_init_first(
if (i >= 0) if (i >= 0)
{ {
const gfx_ctx_driver_t *ctx = video_context_driver_init( const gfx_ctx_driver_t *ctx = video_context_driver_init(
p_rarch->core_set_shared_context, runloop_st->core_set_shared_context,
settings, settings,
data, data,
gfx_ctx_vk_drivers[i], ident, gfx_ctx_vk_drivers[i], ident,
@ -15337,7 +15342,7 @@ static const gfx_ctx_driver_t *vk_context_driver_init_first(
{ {
const gfx_ctx_driver_t *ctx = const gfx_ctx_driver_t *ctx =
video_context_driver_init( video_context_driver_init(
p_rarch->core_set_shared_context, runloop_st->core_set_shared_context,
settings, settings,
data, data,
gfx_ctx_vk_drivers[i], ident, gfx_ctx_vk_drivers[i], ident,
@ -15355,7 +15360,7 @@ static const gfx_ctx_driver_t *vk_context_driver_init_first(
#endif #endif
static const gfx_ctx_driver_t *gl_context_driver_init_first( static const gfx_ctx_driver_t *gl_context_driver_init_first(
struct rarch_state *p_rarch, runloop_state_t *runloop_st,
settings_t *settings, settings_t *settings,
void *data, void *data,
const char *ident, enum gfx_ctx_api api, unsigned major, const char *ident, enum gfx_ctx_api api, unsigned major,
@ -15377,7 +15382,7 @@ static const gfx_ctx_driver_t *gl_context_driver_init_first(
if (i >= 0) if (i >= 0)
{ {
const gfx_ctx_driver_t *ctx = video_context_driver_init( const gfx_ctx_driver_t *ctx = video_context_driver_init(
p_rarch->core_set_shared_context, runloop_st->core_set_shared_context,
settings, settings,
data, data,
gfx_ctx_gl_drivers[i], ident, gfx_ctx_gl_drivers[i], ident,
@ -15393,7 +15398,7 @@ static const gfx_ctx_driver_t *gl_context_driver_init_first(
{ {
const gfx_ctx_driver_t *ctx = const gfx_ctx_driver_t *ctx =
video_context_driver_init( video_context_driver_init(
p_rarch->core_set_shared_context, runloop_st->core_set_shared_context,
settings, settings,
data, data,
gfx_ctx_gl_drivers[i], ident, gfx_ctx_gl_drivers[i], ident,
@ -15427,8 +15432,8 @@ const gfx_ctx_driver_t *video_context_driver_init_first(void *data,
const char *ident, enum gfx_ctx_api api, unsigned major, const char *ident, enum gfx_ctx_api api, unsigned major,
unsigned minor, bool hw_render_ctx, void **ctx_data) unsigned minor, bool hw_render_ctx, void **ctx_data)
{ {
struct rarch_state *p_rarch = &rarch_st; runloop_state_t *runloop_st = &runloop_state;
settings_t *settings = p_rarch->configuration_settings; settings_t *settings = config_get_ptr();
switch (api) switch (api)
{ {
@ -15436,7 +15441,7 @@ const gfx_ctx_driver_t *video_context_driver_init_first(void *data,
#ifdef HAVE_VULKAN #ifdef HAVE_VULKAN
{ {
const gfx_ctx_driver_t *ptr = vk_context_driver_init_first( const gfx_ctx_driver_t *ptr = vk_context_driver_init_first(
p_rarch, settings, runloop_st, settings,
data, ident, api, major, minor, hw_render_ctx, ctx_data); data, ident, api, major, minor, hw_render_ctx, ctx_data);
if (ptr && !string_is_equal(ptr->ident, "null")) if (ptr && !string_is_equal(ptr->ident, "null"))
return ptr; return ptr;
@ -15449,7 +15454,7 @@ const gfx_ctx_driver_t *video_context_driver_init_first(void *data,
case GFX_CTX_METAL_API: case GFX_CTX_METAL_API:
case GFX_CTX_RSX_API: case GFX_CTX_RSX_API:
return gl_context_driver_init_first( return gl_context_driver_init_first(
p_rarch, settings, runloop_st, settings,
data, ident, api, major, minor, data, ident, api, major, minor,
hw_render_ctx, ctx_data); hw_render_ctx, ctx_data);
case GFX_CTX_NONE: case GFX_CTX_NONE:
@ -17854,13 +17859,13 @@ static bool retroarch_parse_input_and_config(
case 'M': case 'M':
if (string_is_equal(optarg, "noload-nosave")) if (string_is_equal(optarg, "noload-nosave"))
{ {
p_rarch->rarch_is_sram_load_disabled = true; runloop_st->is_sram_load_disabled = true;
p_rarch->rarch_is_sram_save_disabled = true; runloop_st->is_sram_save_disabled = true;
} }
else if (string_is_equal(optarg, "noload-save")) else if (string_is_equal(optarg, "noload-save"))
p_rarch->rarch_is_sram_load_disabled = true; runloop_st->is_sram_load_disabled = true;
else if (string_is_equal(optarg, "load-nosave")) else if (string_is_equal(optarg, "load-nosave"))
p_rarch->rarch_is_sram_save_disabled = true; runloop_st->is_sram_save_disabled = true;
else if (string_is_not_equal(optarg, "load-save")) else if (string_is_not_equal(optarg, "load-save"))
{ {
RARCH_ERR("Invalid argument in --sram-mode.\n"); RARCH_ERR("Invalid argument in --sram-mode.\n");
@ -18179,6 +18184,7 @@ bool retroarch_main_init(int argc, char *argv[])
bool verbosity_enabled = false; bool verbosity_enabled = false;
bool init_failed = false; bool init_failed = false;
struct rarch_state *p_rarch = &rarch_st; struct rarch_state *p_rarch = &rarch_st;
runloop_state_t *runloop_st = &runloop_state;
input_driver_state_t input_driver_state_t
*input_st = input_state_get_ptr(); *input_st = input_state_get_ptr();
video_driver_state_t*video_st= video_state_get_ptr(); video_driver_state_t*video_st= video_state_get_ptr();
@ -18457,7 +18463,7 @@ bool retroarch_main_init(int argc, char *argv[])
if (!string_is_empty(global->record.path)) if (!string_is_empty(global->record.path))
command_event(CMD_EVENT_RECORD_INIT, NULL); command_event(CMD_EVENT_RECORD_INIT, NULL);
path_init_savefile(p_rarch); path_init_savefile(runloop_st);
command_event(CMD_EVENT_SET_PER_GAME_RESOLUTION, NULL); command_event(CMD_EVENT_SET_PER_GAME_RESOLUTION, NULL);
@ -18817,7 +18823,7 @@ bool retroarch_ctl(enum rarch_ctl_state state, void *data)
input_mapper_reset(&input_st->mapper); input_mapper_reset(&input_st->mapper);
#ifdef HAVE_THREADS #ifdef HAVE_THREADS
if (p_rarch->rarch_use_sram) if (runloop_st->use_sram)
autosave_deinit(); autosave_deinit();
#endif #endif

View File

@ -722,9 +722,6 @@ struct rarch_state
#endif #endif
bool has_set_log_to_file; bool has_set_log_to_file;
bool rarch_is_inited; bool rarch_is_inited;
bool rarch_is_sram_load_disabled;
bool rarch_is_sram_save_disabled;
bool rarch_use_sram;
bool rarch_ups_pref; bool rarch_ups_pref;
bool rarch_bps_pref; bool rarch_bps_pref;
bool rarch_ips_pref; bool rarch_ips_pref;
@ -732,9 +729,6 @@ struct rarch_state
bool rarch_patch_blocked; bool rarch_patch_blocked;
#endif #endif
bool ignore_environment_cb;
bool core_set_shared_context;
#ifdef HAVE_ACCESSIBILITY #ifdef HAVE_ACCESSIBILITY
/* Is text-to-speech accessibility turned on? */ /* Is text-to-speech accessibility turned on? */
bool accessibility_enabled; bool accessibility_enabled;

View File

@ -174,6 +174,11 @@ struct runloop
bool has_variable_update; bool has_variable_update;
bool input_is_dirty; bool input_is_dirty;
#endif #endif
bool is_sram_load_disabled;
bool is_sram_save_disabled;
bool use_sram;
bool ignore_environment_cb;
bool core_set_shared_context;
}; };
typedef struct runloop runloop_state_t; typedef struct runloop runloop_state_t;