mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 22:20:21 +00:00
fix shader loading and saving in content-less cores
This commit is contained in:
parent
d3632eadb8
commit
e97a31a46c
@ -383,6 +383,8 @@ static bool menu_shader_manager_operate_auto_preset(enum auto_shader_operation o
|
||||
case SHADER_PRESET_GAME:
|
||||
{
|
||||
const char *game_name = path_basename(path_get(RARCH_PATH_BASENAME));
|
||||
if (string_is_empty(game_name))
|
||||
return false;
|
||||
fill_pathname_join(file, directory, game_name, sizeof(file));
|
||||
break;
|
||||
}
|
||||
|
20
retroarch.c
20
retroarch.c
@ -23434,7 +23434,7 @@ static bool retroarch_load_shader_preset_internal(
|
||||
continue;
|
||||
|
||||
/* Concatenate strings into full paths */
|
||||
if (core_name)
|
||||
if (!string_is_empty(core_name))
|
||||
{
|
||||
fill_pathname_join_special_ext(shader_path,
|
||||
shader_directory, core_name,
|
||||
@ -23444,8 +23444,10 @@ static bool retroarch_load_shader_preset_internal(
|
||||
}
|
||||
else
|
||||
{
|
||||
/* core_name == NULL means we want the global preset */
|
||||
fill_pathname_join(shader_path, shader_directory, "global", PATH_MAX_LENGTH);
|
||||
if (string_is_empty(special_name))
|
||||
break;
|
||||
|
||||
fill_pathname_join(shader_path, shader_directory, special_name, PATH_MAX_LENGTH);
|
||||
strlcat(shader_path, video_shader_get_preset_extension(types[i]), PATH_MAX_LENGTH);
|
||||
}
|
||||
|
||||
@ -23495,9 +23497,7 @@ static bool retroarch_load_shader_preset(void)
|
||||
if (!settings->bools.auto_shaders_enable)
|
||||
return false;
|
||||
|
||||
if (string_is_empty(video_shader_directory) ||
|
||||
string_is_empty(core_name) ||
|
||||
string_is_empty(game_name))
|
||||
if (string_is_empty(video_shader_directory))
|
||||
return false;
|
||||
|
||||
shader_directory = (char*)malloc(PATH_MAX_LENGTH);
|
||||
@ -23509,7 +23509,7 @@ static bool retroarch_load_shader_preset(void)
|
||||
RARCH_LOG("[Shaders]: preset directory: %s\n", shader_directory);
|
||||
|
||||
if (retroarch_load_shader_preset_internal(shader_directory, core_name,
|
||||
game_name))
|
||||
game_name))
|
||||
{
|
||||
RARCH_LOG("[Shaders]: game-specific shader preset found.\n");
|
||||
goto success;
|
||||
@ -23522,7 +23522,7 @@ static bool retroarch_load_shader_preset(void)
|
||||
rarch_path_basename, sizeof(content_dir_name));
|
||||
|
||||
if (retroarch_load_shader_preset_internal(shader_directory, core_name,
|
||||
content_dir_name))
|
||||
content_dir_name))
|
||||
{
|
||||
RARCH_LOG("[Shaders]: folder-specific shader preset found.\n");
|
||||
goto success;
|
||||
@ -23530,14 +23530,14 @@ static bool retroarch_load_shader_preset(void)
|
||||
}
|
||||
|
||||
if (retroarch_load_shader_preset_internal(shader_directory, core_name,
|
||||
core_name))
|
||||
core_name))
|
||||
{
|
||||
RARCH_LOG("[Shaders]: core-specific shader preset found.\n");
|
||||
goto success;
|
||||
}
|
||||
|
||||
if (retroarch_load_shader_preset_internal(shader_directory, NULL,
|
||||
core_name))
|
||||
"global"))
|
||||
{
|
||||
RARCH_LOG("[Shaders]: global shader preset found.\n");
|
||||
goto success;
|
||||
|
Loading…
x
Reference in New Issue
Block a user