mirror of
https://github.com/libretro/RetroArch
synced 2025-04-10 15:45:19 +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"))
|
else if (!strcmp(label, "shader_apply_changes"))
|
||||||
{
|
{
|
||||||
unsigned shader_type = RARCH_SHADER_NONE;
|
rarch_main_command(RARCH_CMD_SHADERS_APPLY_CHANGES);
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -331,6 +331,7 @@ static int menu_common_shader_manager_setting_toggle(
|
|||||||
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)
|
||||||
{
|
{
|
||||||
|
bool apply_changes = false;
|
||||||
struct gfx_shader *shader = NULL;
|
struct gfx_shader *shader = NULL;
|
||||||
struct gfx_shader_parameter *param = NULL;
|
struct gfx_shader_parameter *param = NULL;
|
||||||
|
|
||||||
@ -344,14 +345,17 @@ static int menu_common_shader_manager_setting_toggle(
|
|||||||
{
|
{
|
||||||
case MENU_ACTION_START:
|
case MENU_ACTION_START:
|
||||||
param->current = param->initial;
|
param->current = param->initial;
|
||||||
|
apply_changes = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MENU_ACTION_LEFT:
|
case MENU_ACTION_LEFT:
|
||||||
param->current -= param->step;
|
param->current -= param->step;
|
||||||
|
apply_changes = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MENU_ACTION_RIGHT:
|
case MENU_ACTION_RIGHT:
|
||||||
param->current += param->step;
|
param->current += param->step;
|
||||||
|
apply_changes = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -359,6 +363,9 @@ 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);
|
||||||
|
|
||||||
|
if (apply_changes)
|
||||||
|
rarch_main_command(RARCH_CMD_SHADERS_APPLY_CHANGES);
|
||||||
}
|
}
|
||||||
else if ((!strcmp(label, "video_shader_parameters") ||
|
else if ((!strcmp(label, "video_shader_parameters") ||
|
||||||
!strcmp(label, "video_shader_preset_parameters"))
|
!strcmp(label, "video_shader_preset_parameters"))
|
||||||
|
@ -129,6 +129,7 @@ enum basic_event
|
|||||||
RARCH_CMD_QUIT_RETROARCH,
|
RARCH_CMD_QUIT_RETROARCH,
|
||||||
RARCH_CMD_RESUME,
|
RARCH_CMD_RESUME,
|
||||||
RARCH_CMD_MENU_SAVE_CONFIG,
|
RARCH_CMD_MENU_SAVE_CONFIG,
|
||||||
|
RARCH_CMD_SHADERS_APPLY_CHANGES,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum action_state
|
enum action_state
|
||||||
|
39
retroarch.c
39
retroarch.c
@ -3535,9 +3535,9 @@ void rarch_main_command(unsigned cmd)
|
|||||||
break;
|
break;
|
||||||
case RARCH_CMD_OVERLAY_SET_ALPHA_MOD:
|
case RARCH_CMD_OVERLAY_SET_ALPHA_MOD:
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
if (driver.overlay)
|
if (driver.overlay)
|
||||||
input_overlay_set_alpha_mod(driver.overlay,
|
input_overlay_set_alpha_mod(driver.overlay,
|
||||||
g_settings.input.overlay_opacity);
|
g_settings.input.overlay_opacity);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case RARCH_CMD_RESET_CONTEXT:
|
case RARCH_CMD_RESET_CONTEXT:
|
||||||
@ -3562,6 +3562,39 @@ void rarch_main_command(unsigned cmd)
|
|||||||
case RARCH_CMD_MENU_SAVE_CONFIG:
|
case RARCH_CMD_MENU_SAVE_CONFIG:
|
||||||
#ifdef HAVE_MENU
|
#ifdef HAVE_MENU
|
||||||
menu_save_new_config();
|
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
|
#endif
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user