better fix for shader next / shader prev

This commit is contained in:
radius 2018-02-06 23:21:17 -05:00
parent 26b2ff7c3f
commit 4eb7ca5db1
4 changed files with 9 additions and 12 deletions

View File

@ -220,6 +220,7 @@ bool command_set_shader(const char *arg)
{
char msg[256];
enum rarch_shader_type type = RARCH_SHADER_NONE;
struct video_shader *shader = menu_shader_get();
switch (msg_hash_to_file_type(msg_hash_calculate(path_get_extension(arg))))
{
@ -246,7 +247,7 @@ bool command_set_shader(const char *arg)
arg);
retroarch_set_shader_preset(arg);
return video_driver_set_shader(type, arg);
return menu_shader_manager_set_preset(shader, type, arg);
}
#if defined(HAVE_COMMAND) && defined(HAVE_CHEEVOS)

View File

@ -678,12 +678,6 @@ bool video_driver_set_shader(enum rarch_shader_type type,
if (current_video->set_shader)
ret = current_video->set_shader(video_driver_data, type, path);
if (ret)
{
menu_shader_manager_free();
menu_shader_manager_init();
}
return ret;
}

View File

@ -249,7 +249,7 @@ bool menu_shader_manager_init(void)
*
* Sets shader preset.
**/
void menu_shader_manager_set_preset(void *data,
bool menu_shader_manager_set_preset(void *data,
unsigned type, const char *preset_path)
{
#ifdef HAVE_SHADER_MANAGER
@ -261,7 +261,7 @@ void menu_shader_manager_set_preset(void *data,
if (!video_driver_set_shader((enum rarch_shader_type)type, preset_path))
{
configuration_set_bool(settings, settings->bools.video_shader_enable, false);
return;
return false;
}
/* Makes sure that we use Menu Preset shader on driver reinit.
@ -272,7 +272,7 @@ void menu_shader_manager_set_preset(void *data,
configuration_set_bool(settings, settings->bools.video_shader_enable, true);
if (!preset_path || !shader)
return;
return false;
/* Load stored Preset into menu on success.
* Used when a preset is directly loaded.
@ -281,7 +281,7 @@ void menu_shader_manager_set_preset(void *data,
conf = config_file_new(preset_path);
if (!conf)
return;
return false;
RARCH_LOG("Setting Menu shader: %s.\n", preset_path);
@ -293,6 +293,8 @@ void menu_shader_manager_set_preset(void *data,
config_file_free(conf);
menu_entries_ctl(MENU_ENTRIES_CTL_SET_REFRESH, &refresh);
return true;
#endif
}

View File

@ -48,7 +48,7 @@ bool menu_shader_manager_init(void);
*
* Sets shader preset.
**/
void menu_shader_manager_set_preset(
bool menu_shader_manager_set_preset(
void *data, unsigned type, const char *preset_path);
/**