From 456452f1b7e59620f1d84c1e8f951175b6545900 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Wed, 13 Mar 2019 19:50:59 +0100 Subject: [PATCH] Reimplement shader extension filtering --- menu/menu_displaylist.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 56eb372d03..8321bbed67 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -8054,30 +8054,32 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist { char new_exts[PATH_MAX_LENGTH]; union string_list_elem_attr attr; - struct string_list *str_list = NULL; - bool is_preset = false; + struct string_list *str_list = string_list_new(); attr.i = 0; new_exts[0] = '\0'; - str_list = string_list_new(); filebrowser_clear_type(); info->type_default = FILE_TYPE_SHADER_PRESET; - if (video_shader_is_supported(RARCH_SHADER_CG) && - video_shader_get_type_from_ext("cgp", &is_preset) - != RARCH_SHADER_NONE) - string_list_append(str_list, "cgp", attr); + { + gfx_ctx_flags_t flags; + if (video_driver_get_all_flags(&flags, GFX_CTX_FLAGS_SHADERS_CG)) + string_list_append(str_list, "cgp", attr); + } - if (video_shader_is_supported(RARCH_SHADER_GLSL) && - video_shader_get_type_from_ext("glslp", &is_preset) - != RARCH_SHADER_NONE) - string_list_append(str_list, "glslp", attr); + { + gfx_ctx_flags_t flags; + if (video_driver_get_all_flags(&flags, GFX_CTX_FLAGS_SHADERS_GLSL)) + 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, "|"); if (!string_is_empty(info->exts)) free(info->exts);