diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index d51d60f632..2e9ce67599 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -76,6 +76,8 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type) break; case DISPLAYLIST_CORES: case DISPLAYLIST_CORES_DETECTED: + case DISPLAYLIST_SHADER_PASS: + case DISPLAYLIST_SHADER_PRESET: ret = menu_entries_parse_list(info->list, info->menu_list, info->path, info->label, info->type, info->type_default, info->exts, NULL); diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h index 41fe737365..eb60382af4 100644 --- a/menu/menu_displaylist.h +++ b/menu/menu_displaylist.h @@ -34,6 +34,8 @@ enum DISPLAYLIST_PERFCOUNTER_SELECTION, DISPLAYLIST_PERFCOUNTERS_CORE, DISPLAYLIST_PERFCOUNTERS_FRONTEND, + DISPLAYLIST_SHADER_PASS, + DISPLAYLIST_SHADER_PRESET, }; typedef struct menu_displaylist_info diff --git a/menu/menu_entries_cbs_deferred_push.c b/menu/menu_entries_cbs_deferred_push.c index 8a3d361236..1b5a7df325 100644 --- a/menu/menu_entries_cbs_deferred_push.c +++ b/menu/menu_entries_cbs_deferred_push.c @@ -1959,15 +1959,33 @@ static int deferred_push_configurations(void *data, void *userdata, static int deferred_push_video_shader_preset(void *data, void *userdata, const char *path, const char *label, unsigned type) { - return menu_entries_parse_list((file_list_t*)data, (file_list_t*)userdata, path, label, type, - MENU_FILE_SHADER_PRESET, "cgp|glslp", NULL); + menu_displaylist_info_t info = {0}; + + info.list = (file_list_t*)data; + info.menu_list = (file_list_t*)userdata; + info.type = type; + info.type_default = MENU_FILE_SHADER_PRESET; + strlcpy(info.exts, "cgp|glslp", sizeof(info.exts)); + strlcpy(info.path, path, sizeof(info.path)); + strlcpy(info.label, label, sizeof(info.label)); + + return menu_displaylist_push_list(&info, DISPLAYLIST_SHADER_PRESET); } static int deferred_push_video_shader_pass(void *data, void *userdata, const char *path, const char *label, unsigned type) { - return menu_entries_parse_list((file_list_t*)data, (file_list_t*)userdata, path, label, type, - MENU_FILE_SHADER, "cg|glsl", NULL); + menu_displaylist_info_t info = {0}; + + info.list = (file_list_t*)data; + info.menu_list = (file_list_t*)userdata; + info.type = type; + info.type_default = MENU_FILE_SHADER; + strlcpy(info.exts, "cg|glsl", sizeof(info.exts)); + strlcpy(info.path, path, sizeof(info.path)); + strlcpy(info.label, label, sizeof(info.label)); + + return menu_displaylist_push_list(&info, DISPLAYLIST_SHADER_PASS); } static int deferred_push_video_filter(void *data, void *userdata,