Move state over

This commit is contained in:
twinaphex 2021-10-28 06:03:54 +02:00
parent c67c7c944d
commit 80e7e1adde
4 changed files with 36 additions and 38 deletions

View File

@ -847,6 +847,10 @@ typedef struct
retro_hw_render_context_negotiation_interface * retro_hw_render_context_negotiation_interface *
hw_render_context_negotiation; hw_render_context_negotiation;
#ifdef HAVE_MENU
struct video_shader *menu_driver_shader;
#endif
void *context_data; void *context_data;
/* Opaque handles to currently running window. /* Opaque handles to currently running window.
@ -942,7 +946,8 @@ typedef struct
bool force_fullscreen; bool force_fullscreen;
bool threaded; bool threaded;
bool is_switching_display_mode; bool is_switching_display_mode;
bool shader_presets_need_reload;
bool cli_shader_disable;
#ifdef HAVE_RUNAHEAD #ifdef HAVE_RUNAHEAD
bool runahead_is_active; bool runahead_is_active;
#endif #endif

View File

@ -41,7 +41,7 @@ enum auto_shader_operation
struct video_shader *menu_shader_get(void); struct video_shader *menu_shader_get(void);
void menu_shader_manager_free(void *data); void menu_shader_manager_free(void);
/** /**
* menu_shader_manager_init: * menu_shader_manager_init:

View File

@ -1177,7 +1177,7 @@ bool menu_driver_ctl(enum rarch_menu_ctl_state state, void *data)
playlist_free_cached(); playlist_free_cached();
#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL) #if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL)
menu_shader_manager_free(p_rarch); menu_shader_manager_free();
#endif #endif
#ifdef HAVE_NETWORKING #ifdef HAVE_NETWORKING
core_updater_list_free_cached(); core_updater_list_free_cached();
@ -1550,19 +1550,21 @@ static const void *find_driver_nonempty(
#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL) #if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL)
struct video_shader *menu_shader_get(void) struct video_shader *menu_shader_get(void)
{ {
struct rarch_state *p_rarch = &rarch_st; video_driver_state_t
*video_st = video_state_get_ptr();
if (video_shader_any_supported()) if (video_shader_any_supported())
if (p_rarch) if (video_st)
return p_rarch->menu_driver_shader; return video_st->menu_driver_shader;
return NULL; return NULL;
} }
void menu_shader_manager_free(void *data) void menu_shader_manager_free(void)
{ {
struct rarch_state *p_rarch = (struct rarch_state*)data; video_driver_state_t
if (p_rarch->menu_driver_shader) *video_st = video_state_get_ptr();
free(p_rarch->menu_driver_shader); if (video_st->menu_driver_shader)
p_rarch->menu_driver_shader = NULL; free(video_st->menu_driver_shader);
video_st->menu_driver_shader = NULL;
} }
/** /**
@ -1572,7 +1574,8 @@ void menu_shader_manager_free(void *data)
**/ **/
bool menu_shader_manager_init(void) bool menu_shader_manager_init(void)
{ {
struct rarch_state *p_rarch = &rarch_st; video_driver_state_t
*video_st = video_state_get_ptr();
enum rarch_shader_type type = RARCH_SHADER_NONE; enum rarch_shader_type type = RARCH_SHADER_NONE;
bool ret = true; bool ret = true;
bool is_preset = false; bool is_preset = false;
@ -1594,7 +1597,7 @@ bool menu_shader_manager_init(void)
else else
path_shader = retroarch_get_shader_preset(); path_shader = retroarch_get_shader_preset();
menu_shader_manager_free(p_rarch); menu_shader_manager_free();
menu_shader = (struct video_shader*) menu_shader = (struct video_shader*)
calloc(1, sizeof(*menu_shader)); calloc(1, sizeof(*menu_shader));
@ -1634,7 +1637,7 @@ bool menu_shader_manager_init(void)
} }
end: end:
p_rarch->menu_driver_shader = menu_shader; video_st->menu_driver_shader = menu_shader;
command_event(CMD_EVENT_SHADER_PRESET_LOADED, NULL); command_event(CMD_EVENT_SHADER_PRESET_LOADED, NULL);
return ret; return ret;
} }
@ -6158,7 +6161,7 @@ static bool command_event_init_core(
/* Load auto-shaders on the next occasion */ /* Load auto-shaders on the next occasion */
#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL) #if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL)
p_rarch->shader_presets_need_reload = true; video_st->shader_presets_need_reload = true;
runloop_st->shader_delay_timer.timer_begin = false; /* not initialized */ runloop_st->shader_delay_timer.timer_begin = false; /* not initialized */
runloop_st->shader_delay_timer.timer_end = false; /* not expired */ runloop_st->shader_delay_timer.timer_end = false; /* not expired */
#endif #endif
@ -8906,7 +8909,7 @@ int rarch_main(int argc, char *argv[], void *data)
runloop_state_t *runloop_st = &runloop_state; runloop_state_t *runloop_st = &runloop_state;
video_driver_state_t *video_st = video_state_get_ptr(); video_driver_state_t *video_st = video_state_get_ptr();
#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL) #if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL)
p_rarch->shader_presets_need_reload = true; video_st->shader_presets_need_reload = true;
#endif #endif
#ifdef HAVE_RUNAHEAD #ifdef HAVE_RUNAHEAD
video_st->runahead_is_active = true; video_st->runahead_is_active = true;
@ -17537,7 +17540,7 @@ static bool retroarch_parse_input_and_config(
/* disable auto-shaders */ /* disable auto-shaders */
if (string_is_empty(optarg)) if (string_is_empty(optarg))
{ {
p_rarch->cli_shader_disable = true; video_state_get_ptr()->cli_shader_disable = true;
break; break;
} }
@ -18625,14 +18628,15 @@ bool retroarch_ctl(enum rarch_ctl_state state, void *data)
const char *retroarch_get_shader_preset(void) const char *retroarch_get_shader_preset(void)
{ {
#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL) #if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL)
struct rarch_state *p_rarch = &rarch_st; struct rarch_state *p_rarch = &rarch_st;
settings_t *settings = config_get_ptr(); settings_t *settings = config_get_ptr();
runloop_state_t *runloop_st = runloop_state_get_ptr(); runloop_state_t *runloop_st = runloop_state_get_ptr();
const char *core_name = runloop_st->system.info.library_name; video_driver_state_t *video_st = video_state_get_ptr();
bool video_shader_enable = settings->bools.video_shader_enable; const char *core_name = runloop_st->system.info.library_name;
unsigned video_shader_delay = settings->uints.video_shader_delay; bool video_shader_enable = settings->bools.video_shader_enable;
bool auto_shaders_enable = settings->bools.auto_shaders_enable; unsigned video_shader_delay = settings->uints.video_shader_delay;
bool cli_shader_disable = p_rarch->cli_shader_disable; bool auto_shaders_enable = settings->bools.auto_shaders_enable;
bool cli_shader_disable = video_st->cli_shader_disable;
if (!video_shader_enable) if (!video_shader_enable)
return NULL; return NULL;
@ -18648,9 +18652,9 @@ const char *retroarch_get_shader_preset(void)
return runloop_st->runtime_shader_preset_path; return runloop_st->runtime_shader_preset_path;
/* load auto-shader once, --set-shader works like a global auto-shader */ /* load auto-shader once, --set-shader works like a global auto-shader */
if (p_rarch->shader_presets_need_reload && !cli_shader_disable) if (video_st->shader_presets_need_reload && !cli_shader_disable)
{ {
p_rarch->shader_presets_need_reload = false; video_st->shader_presets_need_reload = false;
if (video_shader_is_supported(video_shader_parse_type(p_rarch->cli_shader))) if (video_shader_is_supported(video_shader_parse_type(p_rarch->cli_shader)))
strlcpy(runloop_st->runtime_shader_preset_path, strlcpy(runloop_st->runtime_shader_preset_path,
p_rarch->cli_shader, p_rarch->cli_shader,

View File

@ -551,9 +551,6 @@ struct rarch_state
#ifdef HAVE_NETWORKING #ifdef HAVE_NETWORKING
/* Used while Netplay is running */ /* Used while Netplay is running */
netplay_t *netplay_data; netplay_t *netplay_data;
#endif
#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL)
struct video_shader *menu_driver_shader;
#endif #endif
frontend_ctx_driver_t *current_frontend_ctx; frontend_ctx_driver_t *current_frontend_ctx;
@ -656,10 +653,6 @@ struct rarch_state
#ifdef HAVE_CONFIGFILE #ifdef HAVE_CONFIGFILE
bool rarch_block_config_read; bool rarch_block_config_read;
#endif #endif
#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL)
bool cli_shader_disable;
#endif
bool location_driver_active; bool location_driver_active;
bool bluetooth_driver_active; bool bluetooth_driver_active;
bool wifi_driver_active; bool wifi_driver_active;
@ -675,8 +668,4 @@ struct rarch_state
bool streaming_enable; bool streaming_enable;
bool main_ui_companion_is_on_foreground; bool main_ui_companion_is_on_foreground;
#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL)
bool shader_presets_need_reload;
#endif
}; };