(Menu) Fix shader parameters

This commit is contained in:
twinaphex 2014-09-05 00:13:50 +02:00
parent dd3c6588ea
commit 7bf45b23e9
3 changed files with 15 additions and 9 deletions

View File

@ -1305,7 +1305,10 @@ static int menu_setting_toggle(unsigned type,
{ {
struct retro_perf_counter **counters = NULL; 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 if (driver.menu_ctx && driver.menu_ctx->backend
&& driver.menu_ctx->backend->shader_manager_setting_toggle) && 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, rarch_setting_t *setting = (rarch_setting_t*)setting_data_find_setting(setting_data,
driver.menu->selection_buf->list[index].label); 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 && driver.menu_ctx->backend &&
driver.menu_ctx->backend->shader_manager_get_str driver.menu_ctx->backend->shader_manager_get_str

View File

@ -334,11 +334,6 @@ static int menu_common_shader_manager_setting_toggle(
setting_data, "video_smooth"))) setting_data, "video_smooth")))
menu_common_setting_set_current_boolean(current_setting, action); 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 else if (id >= MENU_SETTINGS_SHADER_PARAMETER_0
&& id <= MENU_SETTINGS_SHADER_PARAMETER_LAST) && 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); 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") || else if (!strcmp(label, "shader_apply_changes") ||
!strcmp(label, "video_shader_passes")) !strcmp(label, "video_shader_passes"))
menu_setting_set(id, label, action); menu_setting_set(id, label, action);

View File

@ -35,7 +35,8 @@ static void entries_refresh(file_list_t *list)
static inline struct gfx_shader *shader_manager_get_current_shader( static inline struct gfx_shader *shader_manager_get_current_shader(
menu_handle_t *menu, const char *label, unsigned type) 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; return menu->shader;
else if (driver.video_poke && driver.video_data && else if (driver.video_poke && driver.video_data &&
driver.video_poke->get_current_shader) driver.video_poke->get_current_shader)
@ -538,7 +539,7 @@ int menu_entries_push_list(menu_handle_t *menu,
if (shader) if (shader)
for (i = 0; i < shader->num_parameters; i++) for (i = 0; i < shader->num_parameters; i++)
file_list_push(list, file_list_push(list,
shader->parameters[i].desc, "", shader->parameters[i].desc, label,
MENU_SETTINGS_SHADER_PARAMETER_0 + i, 0); MENU_SETTINGS_SHADER_PARAMETER_0 + i, 0);
menu->parameter_shader = shader; menu->parameter_shader = shader;
} }