Reimplement shader extension filtering

This commit is contained in:
twinaphex 2019-03-13 19:50:59 +01:00
parent 97247dbaec
commit 456452f1b7

View File

@ -8054,30 +8054,32 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist
{ {
char new_exts[PATH_MAX_LENGTH]; char new_exts[PATH_MAX_LENGTH];
union string_list_elem_attr attr; union string_list_elem_attr attr;
struct string_list *str_list = NULL; struct string_list *str_list = string_list_new();
bool is_preset = false;
attr.i = 0; attr.i = 0;
new_exts[0] = '\0'; new_exts[0] = '\0';
str_list = string_list_new();
filebrowser_clear_type(); filebrowser_clear_type();
info->type_default = FILE_TYPE_SHADER_PRESET; info->type_default = FILE_TYPE_SHADER_PRESET;
if (video_shader_is_supported(RARCH_SHADER_CG) && {
video_shader_get_type_from_ext("cgp", &is_preset) gfx_ctx_flags_t flags;
!= RARCH_SHADER_NONE) if (video_driver_get_all_flags(&flags, GFX_CTX_FLAGS_SHADERS_CG))
string_list_append(str_list, "cgp", attr); string_list_append(str_list, "cgp", attr);
}
if (video_shader_is_supported(RARCH_SHADER_GLSL) && {
video_shader_get_type_from_ext("glslp", &is_preset) gfx_ctx_flags_t flags;
!= RARCH_SHADER_NONE) if (video_driver_get_all_flags(&flags, GFX_CTX_FLAGS_SHADERS_GLSL))
string_list_append(str_list, "glslp", attr); string_list_append(str_list, "glslp", attr);
}
{
gfx_ctx_flags_t flags;
if (video_driver_get_all_flags(&flags, GFX_CTX_FLAGS_SHADERS_SLANG))
string_list_append(str_list, "slangp", attr);
}
if (video_shader_is_supported(RARCH_SHADER_SLANG) &&
video_shader_get_type_from_ext("slangp", &is_preset)
!= RARCH_SHADER_NONE)
string_list_append(str_list, "slangp", attr);
string_list_join_concat(new_exts, sizeof(new_exts), str_list, "|"); string_list_join_concat(new_exts, sizeof(new_exts), str_list, "|");
if (!string_is_empty(info->exts)) if (!string_is_empty(info->exts))
free(info->exts); free(info->exts);