mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 22:20:21 +00:00
(Menu) Immediately apply changes to shader parameters
This commit is contained in:
parent
d72b368dc5
commit
f7e1cb870f
@ -1051,33 +1051,7 @@ static int menu_setting_ok_toggle(unsigned type,
|
||||
}
|
||||
else if (!strcmp(label, "shader_apply_changes"))
|
||||
{
|
||||
unsigned shader_type = RARCH_SHADER_NONE;
|
||||
|
||||
if (driver.menu_ctx && driver.menu_ctx->backend &&
|
||||
driver.menu_ctx->backend->shader_manager_get_type)
|
||||
shader_type = driver.menu_ctx->backend->shader_manager_get_type(
|
||||
driver.menu->shader);
|
||||
|
||||
if (driver.menu->shader->passes && shader_type != RARCH_SHADER_NONE
|
||||
&& driver.menu_ctx && driver.menu_ctx->backend &&
|
||||
driver.menu_ctx->backend->shader_manager_save_preset)
|
||||
driver.menu_ctx->backend->shader_manager_save_preset(NULL, true);
|
||||
else
|
||||
{
|
||||
shader_type = gfx_shader_parse_type("", DEFAULT_SHADER_TYPE);
|
||||
if (shader_type == RARCH_SHADER_NONE)
|
||||
{
|
||||
#if defined(HAVE_GLSL)
|
||||
shader_type = RARCH_SHADER_GLSL;
|
||||
#elif defined(HAVE_CG) || defined(HAVE_HLSL)
|
||||
shader_type = RARCH_SHADER_CG;
|
||||
#endif
|
||||
}
|
||||
if (driver.menu_ctx && driver.menu_ctx->backend &&
|
||||
driver.menu_ctx->backend->shader_manager_set_preset)
|
||||
driver.menu_ctx->backend->shader_manager_set_preset(
|
||||
NULL, shader_type, NULL);
|
||||
}
|
||||
rarch_main_command(RARCH_CMD_SHADERS_APPLY_CHANGES);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
@ -331,6 +331,7 @@ static int menu_common_shader_manager_setting_toggle(
|
||||
else if (id >= MENU_SETTINGS_SHADER_PARAMETER_0
|
||||
&& id <= MENU_SETTINGS_SHADER_PARAMETER_LAST)
|
||||
{
|
||||
bool apply_changes = false;
|
||||
struct gfx_shader *shader = NULL;
|
||||
struct gfx_shader_parameter *param = NULL;
|
||||
|
||||
@ -344,14 +345,17 @@ static int menu_common_shader_manager_setting_toggle(
|
||||
{
|
||||
case MENU_ACTION_START:
|
||||
param->current = param->initial;
|
||||
apply_changes = true;
|
||||
break;
|
||||
|
||||
case MENU_ACTION_LEFT:
|
||||
param->current -= param->step;
|
||||
apply_changes = true;
|
||||
break;
|
||||
|
||||
case MENU_ACTION_RIGHT:
|
||||
param->current += param->step;
|
||||
apply_changes = true;
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -359,6 +363,9 @@ static int menu_common_shader_manager_setting_toggle(
|
||||
}
|
||||
|
||||
param->current = min(max(param->minimum, param->current), param->maximum);
|
||||
|
||||
if (apply_changes)
|
||||
rarch_main_command(RARCH_CMD_SHADERS_APPLY_CHANGES);
|
||||
}
|
||||
else if ((!strcmp(label, "video_shader_parameters") ||
|
||||
!strcmp(label, "video_shader_preset_parameters"))
|
||||
|
@ -129,6 +129,7 @@ enum basic_event
|
||||
RARCH_CMD_QUIT_RETROARCH,
|
||||
RARCH_CMD_RESUME,
|
||||
RARCH_CMD_MENU_SAVE_CONFIG,
|
||||
RARCH_CMD_SHADERS_APPLY_CHANGES,
|
||||
};
|
||||
|
||||
enum action_state
|
||||
|
39
retroarch.c
39
retroarch.c
@ -3535,9 +3535,9 @@ void rarch_main_command(unsigned cmd)
|
||||
break;
|
||||
case RARCH_CMD_OVERLAY_SET_ALPHA_MOD:
|
||||
#ifdef HAVE_OVERLAY
|
||||
if (driver.overlay)
|
||||
input_overlay_set_alpha_mod(driver.overlay,
|
||||
g_settings.input.overlay_opacity);
|
||||
if (driver.overlay)
|
||||
input_overlay_set_alpha_mod(driver.overlay,
|
||||
g_settings.input.overlay_opacity);
|
||||
#endif
|
||||
break;
|
||||
case RARCH_CMD_RESET_CONTEXT:
|
||||
@ -3562,6 +3562,39 @@ void rarch_main_command(unsigned cmd)
|
||||
case RARCH_CMD_MENU_SAVE_CONFIG:
|
||||
#ifdef HAVE_MENU
|
||||
menu_save_new_config();
|
||||
#endif
|
||||
break;
|
||||
case RARCH_CMD_SHADERS_APPLY_CHANGES:
|
||||
#ifdef HAVE_MENU
|
||||
{
|
||||
unsigned shader_type = RARCH_SHADER_NONE;
|
||||
|
||||
if (driver.menu_ctx && driver.menu_ctx->backend &&
|
||||
driver.menu_ctx->backend->shader_manager_get_type)
|
||||
shader_type = driver.menu_ctx->backend->shader_manager_get_type(
|
||||
driver.menu->shader);
|
||||
|
||||
if (driver.menu->shader->passes && shader_type != RARCH_SHADER_NONE
|
||||
&& driver.menu_ctx && driver.menu_ctx->backend &&
|
||||
driver.menu_ctx->backend->shader_manager_save_preset)
|
||||
driver.menu_ctx->backend->shader_manager_save_preset(NULL, true);
|
||||
else
|
||||
{
|
||||
shader_type = gfx_shader_parse_type("", DEFAULT_SHADER_TYPE);
|
||||
if (shader_type == RARCH_SHADER_NONE)
|
||||
{
|
||||
#if defined(HAVE_GLSL)
|
||||
shader_type = RARCH_SHADER_GLSL;
|
||||
#elif defined(HAVE_CG) || defined(HAVE_HLSL)
|
||||
shader_type = RARCH_SHADER_CG;
|
||||
#endif
|
||||
}
|
||||
if (driver.menu_ctx && driver.menu_ctx->backend &&
|
||||
driver.menu_ctx->backend->shader_manager_set_preset)
|
||||
driver.menu_ctx->backend->shader_manager_set_preset(
|
||||
NULL, shader_type, NULL);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user