Skip to content

Commit

Permalink
Use CLI shader path for shader dir init if present
Browse files Browse the repository at this point in the history
If shader is given on command line, use it for directory init.
Fixes libretro#16181, shader cycle should now work using the dir of the
shader passed to CLI.
  • Loading branch information
zoltanvb committed Feb 4, 2024
1 parent ad8975c commit 77ef6e0
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions gfx/video_shader_parse.c
Original file line number Diff line number Diff line change
Expand Up @@ -2547,6 +2547,7 @@ static void video_shader_dir_init_shader(
bool video_shader_remember_last_dir = settings->bools.video_shader_remember_last_dir;
const char *last_shader_preset_dir = NULL;
const char *last_shader_preset_file_name = NULL;
video_driver_state_t *video_st = video_state_get_ptr();
#if defined(HAVE_MENU)
menu_handle_t *menu = (menu_handle_t*)menu_driver_data_;
enum rarch_shader_type last_shader_preset_type = menu ? menu->last_shader_selection.preset_type : RARCH_SHADER_NONE;
Expand All @@ -2572,6 +2573,18 @@ static void video_shader_dir_init_shader(
show_hidden_files))
return;

/* Try directory of shader given as command line parameter */
if (!string_is_empty(video_st->cli_shader_path))
{
char cli_path[PATH_MAX_LENGTH];
fill_pathname_basedir(cli_path, video_st->cli_shader_path, sizeof(cli_path));
if (video_shader_dir_init_shader_internal(
video_shader_remember_last_dir,
dir_list,
cli_path, NULL, show_hidden_files))
return;
}

/* Try video shaders directory */
if (!string_is_empty(directory_video_shader) &&
video_shader_dir_init_shader_internal(
Expand Down

0 comments on commit 77ef6e0

Please sign in to comment.