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 3, 2024
1 parent ad8975c commit a9c9d0a
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 @@ -2555,6 +2555,7 @@ static void video_shader_dir_init_shader(
#else
enum rarch_shader_type last_shader_preset_type = RARCH_SHADER_NONE;
#endif
video_driver_state_t *video_st = video_state_get_ptr();

/* Always free existing shader list */
video_shader_dir_free_shader(dir_list,
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 a9c9d0a

Please sign in to comment.