Create menu_shader_manager_get_parameters

This commit is contained in:
twinaphex 2017-01-09 03:28:26 +01:00
parent 338980ef29
commit 78608f4c46
5 changed files with 34 additions and 45 deletions

View File

@ -353,8 +353,8 @@ static void menu_action_setting_disp_set_label_shader_preset_parameter(
char *s2, size_t len2)
{
#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_HLSL)
const struct video_shader_parameter *param = NULL;
struct video_shader *shader = NULL;
const struct video_shader_parameter *param = menu_shader_manager_get_parameters(
type - MENU_SETTINGS_SHADER_PRESET_PARAMETER_0);
#endif
*s = '\0';
@ -362,18 +362,9 @@ static void menu_action_setting_disp_set_label_shader_preset_parameter(
strlcpy(s2, path, len2);
#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_HLSL)
menu_driver_ctl(RARCH_MENU_CTL_SHADER_GET,
&shader);
if (!shader)
return;
param = &shader->parameters[type - MENU_SETTINGS_SHADER_PRESET_PARAMETER_0];
if (!param)
return;
snprintf(s, len, "%.2f [%.2f %.2f]",
param->current, param->minimum, param->maximum);
if (param)
snprintf(s, len, "%.2f [%.2f %.2f]",
param->current, param->minimum, param->maximum);
#endif
}

View File

@ -51,9 +51,6 @@ static int generic_shader_action_parameter_left(
struct video_shader_parameter *param,
unsigned type, const char *label, bool wraparound)
{
if (!param)
return 0;
param->current -= param->step;
param->current = MIN(MAX(param->minimum, param->current),
param->maximum);
@ -70,6 +67,8 @@ static int shader_action_parameter_left(unsigned type, const char *label,
param = &shader_info.data->parameters[type
- MENU_SETTINGS_SHADER_PARAMETER_0];
if (!param)
return 0;
return generic_shader_action_parameter_left(param,
type, label, wraparound);
}
@ -78,15 +77,10 @@ static int shader_action_parameter_preset_left(unsigned type,
const char *label,
bool wraparound)
{
struct video_shader_parameter *param = NULL;
struct video_shader *shader = NULL;
menu_driver_ctl(RARCH_MENU_CTL_SHADER_GET,
&shader);
param = shader ?
&shader->parameters[type - MENU_SETTINGS_SHADER_PRESET_PARAMETER_0] :
NULL;
struct video_shader_parameter *param = menu_shader_manager_get_parameters(
type - MENU_SETTINGS_SHADER_PRESET_PARAMETER_0);
if (!param)
return 0;
return generic_shader_action_parameter_left(param,
type, label, wraparound);
}

View File

@ -51,9 +51,6 @@
static int generic_shader_action_parameter_right(struct video_shader_parameter *param,
unsigned type, const char *label, bool wraparound)
{
if (!param)
return menu_cbs_exit();
param->current += param->step;
param->current = MIN(MAX(param->minimum, param->current), param->maximum);
@ -70,21 +67,18 @@ int shader_action_parameter_right(unsigned type, const char *label, bool wraparo
video_shader_driver_get_current_shader(&shader_info);
param = &shader_info.data->parameters[type - MENU_SETTINGS_SHADER_PARAMETER_0];
if (!param)
return menu_cbs_exit();
return generic_shader_action_parameter_right(param, type, label, wraparound);
}
int shader_action_parameter_preset_right(unsigned type, const char *label,
bool wraparound)
{
struct video_shader_parameter *param = NULL;
struct video_shader *shader = NULL;
menu_driver_ctl(RARCH_MENU_CTL_SHADER_GET,
&shader);
param = shader ?
&shader->parameters[type - MENU_SETTINGS_SHADER_PRESET_PARAMETER_0] :
NULL;
struct video_shader_parameter *param = menu_shader_manager_get_parameters(
type - MENU_SETTINGS_SHADER_PRESET_PARAMETER_0);
if (!param)
return menu_cbs_exit();
return generic_shader_action_parameter_right(param, type, label, wraparound);
}
#endif

View File

@ -39,6 +39,19 @@ static char default_cgp[PATH_MAX_LENGTH];
static char default_slangp[PATH_MAX_LENGTH];
#endif
struct video_shader_parameter *menu_shader_manager_get_parameters(unsigned i)
{
struct video_shader *shader = NULL;
menu_driver_ctl(RARCH_MENU_CTL_SHADER_GET,
&shader);
if (!shader)
return NULL;
return &shader->parameters[i];
}
struct video_shader_pass *menu_shader_manager_get_pass(unsigned i)
{
struct video_shader *shader = NULL;
@ -409,16 +422,11 @@ int menu_shader_manager_clear_num_passes(void)
int menu_shader_manager_clear_parameter(unsigned i)
{
#ifdef HAVE_SHADER_MANAGER
struct video_shader *shader = NULL;
struct video_shader_parameter *param = NULL;
struct video_shader_parameter *param = menu_shader_manager_get_parameters(i);
menu_driver_ctl(RARCH_MENU_CTL_SHADER_GET,
&shader);
if (!shader)
if (!param)
return 0;
param = &shader->parameters[i];
param->current = param->initial;
param->current = MIN(MAX(param->minimum, param->current), param->maximum);
#endif

View File

@ -23,6 +23,8 @@
RETRO_BEGIN_DECLS
struct video_shader_parameter *menu_shader_manager_get_parameters(unsigned i);
struct video_shader_pass *menu_shader_manager_get_pass(unsigned i);
unsigned menu_shader_manager_get_amount_passes(void);