From 7bf45b23e9b1de20f43e53a0b634f33358aaf1aa Mon Sep 17 00:00:00 2001 From: twinaphex Date: Fri, 5 Sep 2014 00:13:50 +0200 Subject: [PATCH] (Menu) Fix shader parameters --- frontend/menu/backend/menu_common_backend.c | 9 +++++++-- frontend/menu/backend/menu_common_shader_backend.c | 10 +++++----- frontend/menu/menu_entries.c | 5 +++-- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/frontend/menu/backend/menu_common_backend.c b/frontend/menu/backend/menu_common_backend.c index 112366a426..8381b27514 100644 --- a/frontend/menu/backend/menu_common_backend.c +++ b/frontend/menu/backend/menu_common_backend.c @@ -1305,7 +1305,10 @@ static int menu_setting_toggle(unsigned type, { struct retro_perf_counter **counters = NULL; - if (menu_common_type_is(label, type) == MENU_SETTINGS_SHADER_OPTIONS) + if ((menu_common_type_is(label, type) == MENU_SETTINGS_SHADER_OPTIONS) || + !strcmp(label, "video_shader_parameters") || + !strcmp(label, "video_shader_preset_parameters") + ) { if (driver.menu_ctx && driver.menu_ctx->backend && driver.menu_ctx->backend->shader_manager_setting_toggle) @@ -2207,7 +2210,9 @@ static void menu_common_setting_set_label(char *type_str, rarch_setting_t *setting = (rarch_setting_t*)setting_data_find_setting(setting_data, driver.menu->selection_buf->list[index].label); - if (!strcmp(menu_label, "Shader Options") + if ((!strcmp(menu_label, "Shader Options") || + !strcmp(menu_label, "video_shader_parameters") || + !strcmp(menu_label, "video_shader_preset_parameters")) && driver.menu_ctx && driver.menu_ctx->backend && driver.menu_ctx->backend->shader_manager_get_str diff --git a/frontend/menu/backend/menu_common_shader_backend.c b/frontend/menu/backend/menu_common_shader_backend.c index 7184f17d7b..a05f2b8d2d 100644 --- a/frontend/menu/backend/menu_common_shader_backend.c +++ b/frontend/menu/backend/menu_common_shader_backend.c @@ -334,11 +334,6 @@ static int menu_common_shader_manager_setting_toggle( setting_data, "video_smooth"))) menu_common_setting_set_current_boolean(current_setting, action); } - else if ((!strcmp(label, "video_shader_parameters") || - !strcmp(label, "video_shader_preset_parameters")) - && action == MENU_ACTION_OK) - menu_entries_push(driver.menu->menu_stack, "", - "video_shader_parameters", MENU_FILE_SWITCH, driver.menu->selection_ptr); else if (id >= MENU_SETTINGS_SHADER_PARAMETER_0 && id <= MENU_SETTINGS_SHADER_PARAMETER_LAST) { @@ -371,6 +366,11 @@ static int menu_common_shader_manager_setting_toggle( param->current = min(max(param->minimum, param->current), param->maximum); } + else if ((!strcmp(label, "video_shader_parameters") || + !strcmp(label, "video_shader_preset_parameters")) + && action == MENU_ACTION_OK) + menu_entries_push(driver.menu->menu_stack, "", + "video_shader_parameters", MENU_FILE_SWITCH, driver.menu->selection_ptr); else if (!strcmp(label, "shader_apply_changes") || !strcmp(label, "video_shader_passes")) menu_setting_set(id, label, action); diff --git a/frontend/menu/menu_entries.c b/frontend/menu/menu_entries.c index e31fda6f3b..dda3ddb125 100644 --- a/frontend/menu/menu_entries.c +++ b/frontend/menu/menu_entries.c @@ -35,7 +35,8 @@ static void entries_refresh(file_list_t *list) static inline struct gfx_shader *shader_manager_get_current_shader( menu_handle_t *menu, const char *label, unsigned type) { - if (!strcmp(label, "video_shader_preset_parameters")) + if (!strcmp(label, "video_shader_preset_parameters") || + !strcmp(label, "video_shader_parameters")) return menu->shader; else if (driver.video_poke && driver.video_data && driver.video_poke->get_current_shader) @@ -538,7 +539,7 @@ int menu_entries_push_list(menu_handle_t *menu, if (shader) for (i = 0; i < shader->num_parameters; i++) file_list_push(list, - shader->parameters[i].desc, "", + shader->parameters[i].desc, label, MENU_SETTINGS_SHADER_PARAMETER_0 + i, 0); menu->parameter_shader = shader; }