mirror of
https://github.com/libretro/RetroArch
synced 2025-02-06 09:40:06 +00:00
Create DISPLAYLIST_OPTIONS_SHADERS
This commit is contained in:
parent
6a851ab291
commit
401bccac31
@ -802,6 +802,53 @@ static int menu_displaylist_parse_all_settings(menu_displaylist_info_t *info)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int menu_displaylist_parse_shader_options(menu_displaylist_info_t *info)
|
||||
{
|
||||
unsigned i;
|
||||
struct video_shader *shader = NULL;
|
||||
menu_handle_t *menu = menu_driver_get_ptr();
|
||||
|
||||
if (!menu)
|
||||
return -1;
|
||||
|
||||
shader = menu->shader;
|
||||
|
||||
if (!shader)
|
||||
return -1;
|
||||
|
||||
menu_list_push(info->list, "Apply Shader Changes", "shader_apply_changes",
|
||||
MENU_SETTING_ACTION, 0);
|
||||
menu_list_push(info->list, "Load Shader Preset", "video_shader_preset",
|
||||
MENU_FILE_PATH, 0);
|
||||
menu_list_push(info->list, "Shader Preset Save As",
|
||||
"video_shader_preset_save_as", MENU_SETTING_ACTION, 0);
|
||||
menu_list_push(info->list, "Parameters (Current)",
|
||||
"video_shader_parameters", MENU_SETTING_ACTION, 0);
|
||||
menu_list_push(info->list, "Parameters (Menu)",
|
||||
"video_shader_preset_parameters", MENU_SETTING_ACTION, 0);
|
||||
menu_list_push(info->list, "Shader Passes", "video_shader_num_passes",
|
||||
0, 0);
|
||||
|
||||
for (i = 0; i < shader->passes; i++)
|
||||
{
|
||||
char buf[64];
|
||||
|
||||
snprintf(buf, sizeof(buf), "Shader #%u", i);
|
||||
menu_list_push(info->list, buf, "video_shader_pass",
|
||||
MENU_SETTINGS_SHADER_PASS_0 + i, 0);
|
||||
|
||||
snprintf(buf, sizeof(buf), "Shader #%u Filter", i);
|
||||
menu_list_push(info->list, buf, "video_shader_filter_pass",
|
||||
MENU_SETTINGS_SHADER_PASS_FILTER_0 + i, 0);
|
||||
|
||||
snprintf(buf, sizeof(buf), "Shader #%u Scale", i);
|
||||
menu_list_push(info->list, buf, "video_shader_scale_pass",
|
||||
MENU_SETTINGS_SHADER_PASS_SCALE_0 + i, 0);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type)
|
||||
{
|
||||
int ret = 0;
|
||||
@ -855,6 +902,13 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type)
|
||||
0, 0);
|
||||
#endif
|
||||
|
||||
need_push = true;
|
||||
break;
|
||||
case DISPLAYLIST_OPTIONS_SHADERS:
|
||||
menu_list_clear(info->list);
|
||||
|
||||
ret = menu_displaylist_parse_shader_options(info);
|
||||
|
||||
need_push = true;
|
||||
break;
|
||||
case DISPLAYLIST_DEFAULT:
|
||||
|
@ -63,6 +63,7 @@ enum
|
||||
DISPLAYLIST_SHADER_PARAMETERS,
|
||||
DISPLAYLIST_SHADER_PARAMETERS_PRESET,
|
||||
DISPLAYLIST_OPTIONS_VIDEO,
|
||||
DISPLAYLIST_OPTIONS_SHADERS,
|
||||
};
|
||||
|
||||
typedef struct menu_displaylist_info
|
||||
|
@ -1190,60 +1190,15 @@ static int deferred_push_video_options(void *data, void *userdata,
|
||||
static int deferred_push_shader_options(void *data, void *userdata,
|
||||
const char *path, const char *label, unsigned type)
|
||||
{
|
||||
unsigned i;
|
||||
struct video_shader *shader = NULL;
|
||||
file_list_t *list = NULL;
|
||||
file_list_t *menu_list = NULL;
|
||||
menu_handle_t *menu = menu_driver_get_ptr();
|
||||
menu_displaylist_info_t info = {0};
|
||||
|
||||
if (!menu)
|
||||
return -1;
|
||||
info.list = (file_list_t*)data;
|
||||
info.menu_list = (file_list_t*)userdata;
|
||||
info.type = type;
|
||||
strlcpy(info.path, path, sizeof(info.path));
|
||||
strlcpy(info.label, label, sizeof(info.label));
|
||||
|
||||
list = (file_list_t*)data;
|
||||
menu_list = (file_list_t*)userdata;
|
||||
|
||||
if (!list || !menu_list)
|
||||
return -1;
|
||||
|
||||
shader = menu->shader;
|
||||
|
||||
if (!shader)
|
||||
return -1;
|
||||
|
||||
menu_list_clear(list);
|
||||
menu_list_push(list, "Apply Shader Changes", "shader_apply_changes",
|
||||
MENU_SETTING_ACTION, 0);
|
||||
menu_list_push(list, "Load Shader Preset", "video_shader_preset",
|
||||
MENU_FILE_PATH, 0);
|
||||
menu_list_push(list, "Shader Preset Save As",
|
||||
"video_shader_preset_save_as", MENU_SETTING_ACTION, 0);
|
||||
menu_list_push(list, "Parameters (Current)",
|
||||
"video_shader_parameters", MENU_SETTING_ACTION, 0);
|
||||
menu_list_push(list, "Parameters (Menu)",
|
||||
"video_shader_preset_parameters", MENU_SETTING_ACTION, 0);
|
||||
menu_list_push(list, "Shader Passes", "video_shader_num_passes",
|
||||
0, 0);
|
||||
|
||||
for (i = 0; i < shader->passes; i++)
|
||||
{
|
||||
char buf[64];
|
||||
|
||||
snprintf(buf, sizeof(buf), "Shader #%u", i);
|
||||
menu_list_push(list, buf, "video_shader_pass",
|
||||
MENU_SETTINGS_SHADER_PASS_0 + i, 0);
|
||||
|
||||
snprintf(buf, sizeof(buf), "Shader #%u Filter", i);
|
||||
menu_list_push(list, buf, "video_shader_filter_pass",
|
||||
MENU_SETTINGS_SHADER_PASS_FILTER_0 + i, 0);
|
||||
|
||||
snprintf(buf, sizeof(buf), "Shader #%u Scale", i);
|
||||
menu_list_push(list, buf, "video_shader_scale_pass",
|
||||
MENU_SETTINGS_SHADER_PASS_SCALE_0 + i, 0);
|
||||
}
|
||||
|
||||
menu_driver_populate_entries(path, label, type);
|
||||
|
||||
return 0;
|
||||
return menu_displaylist_push_list(&info, DISPLAYLIST_OPTIONS_SHADERS);
|
||||
}
|
||||
|
||||
static int deferred_push_options(void *data, void *userdata,
|
||||
|
Loading…
x
Reference in New Issue
Block a user