Get rid of some menu shader functions

This commit is contained in:
twinaphex 2018-02-27 05:07:17 +01:00
parent 502f3ddc74
commit f0f3df3043
7 changed files with 52 additions and 70 deletions

View File

@ -160,8 +160,8 @@ static void menu_action_setting_disp_set_label_shader_filter_pass(
const char *path,
char *s2, size_t len2)
{
struct video_shader_pass *shader_pass = menu_shader_manager_get_pass(
type - MENU_SETTINGS_SHADER_PASS_FILTER_0);
struct video_shader *shader = menu_shader_get();
struct video_shader_pass *shader_pass = shader ? &shader->pass[type - MENU_SETTINGS_SHADER_PASS_FILTER_0] : NULL;
*s = '\0';
*w = 19;
@ -374,10 +374,13 @@ static void menu_action_setting_disp_set_label_shader_num_passes(
const char *path,
char *s2, size_t len2)
{
struct video_shader *shader = menu_shader_get();
unsigned pass_count = shader ? shader->passes : 0;
*s = '\0';
*w = 19;
strlcpy(s2, path, len2);
snprintf(s, len, "%u", menu_shader_manager_get_amount_passes());
snprintf(s, len, "%u", pass_count);
}
static void menu_action_setting_disp_set_label_shader_pass(
@ -389,8 +392,8 @@ static void menu_action_setting_disp_set_label_shader_pass(
const char *path,
char *s2, size_t len2)
{
struct video_shader_pass *shader_pass = menu_shader_manager_get_pass(
type - MENU_SETTINGS_SHADER_PASS_0);
struct video_shader *shader = menu_shader_get();
struct video_shader_pass *shader_pass = shader ? &shader->pass[type - MENU_SETTINGS_SHADER_PASS_0] : NULL;
*s = '\0';
*w = 19;
@ -468,9 +471,10 @@ static void menu_action_setting_disp_set_label_shader_preset_parameter(
const char *path,
char *s2, size_t len2)
{
const struct video_shader_parameter *param =
menu_shader_manager_get_parameters(
type - MENU_SETTINGS_SHADER_PRESET_PARAMETER_0);
struct video_shader *shader = menu_shader_get();
struct video_shader_parameter *param = shader ?
&shader->parameters[type - MENU_SETTINGS_SHADER_PRESET_PARAMETER_0]
: NULL;
*s = '\0';
*w = 19;
@ -490,10 +494,10 @@ static void menu_action_setting_disp_set_label_shader_scale_pass(
const char *path,
char *s2, size_t len2)
{
unsigned pass = 0;
unsigned scale_value = 0;
struct video_shader_pass *shader_pass = menu_shader_manager_get_pass(
type - MENU_SETTINGS_SHADER_PASS_SCALE_0);
unsigned pass = 0;
unsigned scale_value = 0;
struct video_shader *shader = menu_shader_get();
struct video_shader_pass *shader_pass = shader ? &shader->pass[type - MENU_SETTINGS_SHADER_PASS_SCALE_0] : NULL;
*s = '\0';
*w = 19;

View File

@ -61,6 +61,7 @@ static int generic_shader_action_parameter_left(
static int shader_action_parameter_left(unsigned type, const char *label, bool wraparound)
{
video_shader_ctx_t shader_info;
struct video_shader *shader = menu_shader_get();
struct video_shader_parameter *param = NULL;
video_shader_driver_get_current_shader(&shader_info);
@ -70,8 +71,8 @@ static int shader_action_parameter_left(unsigned type, const char *label, bool w
return menu_cbs_exit();
generic_shader_action_parameter_left(param, type, label, wraparound);
param = menu_shader_manager_get_parameters(
type - MENU_SETTINGS_SHADER_PARAMETER_0);
param = shader ? &shader->parameters[type -
MENU_SETTINGS_SHADER_PARAMETER_0] : NULL;
if (!param)
return menu_cbs_exit();
return generic_shader_action_parameter_left(param, type, label, wraparound);
@ -229,7 +230,8 @@ static int action_left_shader_scale_pass(unsigned type, const char *label,
unsigned current_scale, delta;
unsigned pass = type -
MENU_SETTINGS_SHADER_PASS_SCALE_0;
struct video_shader_pass *shader_pass = menu_shader_manager_get_pass(pass);
struct video_shader *shader = menu_shader_get();
struct video_shader_pass *shader_pass = shader ? &shader->pass[pass] : NULL;
if (!shader_pass)
return menu_cbs_exit();
@ -249,7 +251,8 @@ static int action_left_shader_filter_pass(unsigned type, const char *label,
{
unsigned delta = 2;
unsigned pass = type - MENU_SETTINGS_SHADER_PASS_FILTER_0;
struct video_shader_pass *shader_pass = menu_shader_manager_get_pass(pass);
struct video_shader *shader = menu_shader_get();
struct video_shader_pass *shader_pass = shader ? &shader->pass[pass] : NULL;
if (!shader_pass)
return menu_cbs_exit();
@ -289,11 +292,12 @@ static int action_left_shader_num_passes(unsigned type, const char *label,
{
bool refresh = false;
struct video_shader *shader = menu_shader_get();
unsigned pass_count = shader ? shader->passes : 0;
if (!shader)
return menu_cbs_exit();
if (menu_shader_manager_get_amount_passes())
if (pass_count > 0)
menu_shader_manager_decrement_amount_passes();
menu_entries_ctl(MENU_ENTRIES_CTL_SET_REFRESH, &refresh);

View File

@ -1150,8 +1150,9 @@ static int generic_action_ok(const char *path,
break;
case ACTION_OK_LOAD_SHADER_PASS:
{
struct video_shader_pass *shader_pass = menu_shader_manager_get_pass((unsigned)hack_shader_pass);
flush_char = msg_hash_to_str((enum msg_hash_enums)flush_id);
struct video_shader *shader = menu_shader_get();
struct video_shader_pass *shader_pass = shader ? &shader->pass[(unsigned)hack_shader_pass] : NULL;
flush_char = msg_hash_to_str((enum msg_hash_enums)flush_id);
strlcpy(
shader_pass->source.path,
action_path,

View File

@ -64,6 +64,7 @@ static int generic_shader_action_parameter_right(struct video_shader_parameter *
int shader_action_parameter_right(unsigned type, const char *label, bool wraparound)
{
video_shader_ctx_t shader_info;
struct video_shader *shader = menu_shader_get();
struct video_shader_parameter *param = NULL;
video_shader_driver_get_current_shader(&shader_info);
@ -73,8 +74,8 @@ int shader_action_parameter_right(unsigned type, const char *label, bool wraparo
if (!param)
return menu_cbs_exit();
generic_shader_action_parameter_right(param, type, label, wraparound);
param = menu_shader_manager_get_parameters(
type - MENU_SETTINGS_SHADER_PARAMETER_0);
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);
@ -239,7 +240,8 @@ static int action_right_shader_scale_pass(unsigned type, const char *label,
unsigned current_scale, delta;
unsigned pass =
type - MENU_SETTINGS_SHADER_PASS_SCALE_0;
struct video_shader_pass *shader_pass = menu_shader_manager_get_pass(pass);
struct video_shader *shader = menu_shader_get();
struct video_shader_pass *shader_pass = shader ? &shader->pass[pass] : NULL;
if (!shader_pass)
return menu_cbs_exit();
@ -258,7 +260,8 @@ static int action_right_shader_filter_pass(unsigned type, const char *label,
{
unsigned pass = type - MENU_SETTINGS_SHADER_PASS_FILTER_0;
unsigned delta = 1;
struct video_shader_pass *shader_pass = menu_shader_manager_get_pass(pass);
struct video_shader *shader = menu_shader_get();
struct video_shader_pass *shader_pass = shader ? &shader->pass[pass] : NULL;
if (!shader_pass)
return menu_cbs_exit();
@ -297,11 +300,12 @@ static int action_right_shader_num_passes(unsigned type, const char *label,
{
bool refresh = false;
struct video_shader *shader = menu_shader_get();
unsigned pass_count = shader ? shader->passes : 0;
if (!shader)
return menu_cbs_exit();
if ((menu_shader_manager_get_amount_passes() < GFX_MAX_SHADERS))
if (pass_count < GFX_MAX_SHADERS)
menu_shader_manager_increment_amount_passes();
menu_entries_ctl(MENU_ENTRIES_CTL_SET_REFRESH, &refresh);

View File

@ -1363,7 +1363,8 @@ error:
static int menu_displaylist_parse_shader_options(menu_displaylist_info_t *info)
{
unsigned i;
unsigned pass_count = menu_shader_manager_get_amount_passes();
struct video_shader *shader = menu_shader_get();
unsigned pass_count = shader ? shader->passes : 0;
menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SHADER_APPLY_CHANGES),

View File

@ -44,36 +44,6 @@ struct video_shader *menu_shader_get(void)
return NULL;
}
struct video_shader_parameter *menu_shader_manager_get_parameters(unsigned i)
{
struct video_shader *shader = menu_shader_get();
if (!shader)
return NULL;
return &shader->parameters[i];
}
struct video_shader_pass *menu_shader_manager_get_pass(unsigned i)
{
struct video_shader *shader = menu_shader_get();
if (!shader)
return NULL;
return &shader->pass[i];
}
unsigned menu_shader_manager_get_amount_passes(void)
{
struct video_shader *shader = menu_shader_get();
if (!shader)
return 0;
return shader->passes;
}
void menu_shader_manager_decrement_amount_passes(void)
{
struct video_shader *shader = menu_shader_get();
@ -444,8 +414,9 @@ int menu_shader_manager_clear_num_passes(void)
int menu_shader_manager_clear_parameter(unsigned i)
{
struct video_shader_parameter *param =
menu_shader_manager_get_parameters(i);
struct video_shader *shader = menu_shader_get();
struct video_shader_parameter *param = shader ?
&shader->parameters[i] : NULL;
if (!param)
return 0;
@ -459,8 +430,9 @@ int menu_shader_manager_clear_parameter(unsigned i)
int menu_shader_manager_clear_pass_filter(unsigned i)
{
struct video_shader_pass *shader_pass =
menu_shader_manager_get_pass(i);
struct video_shader *shader = menu_shader_get();
struct video_shader_pass *shader_pass = shader ?
&shader->pass[i] : NULL;
if (!shader_pass)
return -1;
@ -472,8 +444,9 @@ int menu_shader_manager_clear_pass_filter(unsigned i)
void menu_shader_manager_clear_pass_scale(unsigned i)
{
struct video_shader_pass *shader_pass =
menu_shader_manager_get_pass(i);
struct video_shader *shader = menu_shader_get();
struct video_shader_pass *shader_pass = shader ?
&shader->pass[i] : NULL;
if (!shader_pass)
return;
@ -485,8 +458,9 @@ void menu_shader_manager_clear_pass_scale(unsigned i)
void menu_shader_manager_clear_pass_path(unsigned i)
{
struct video_shader_pass *shader_pass =
menu_shader_manager_get_pass(i);
struct video_shader *shader = menu_shader_get();
struct video_shader_pass *shader_pass = shader ?
&shader->pass[i] : NULL;
if (shader_pass)
*shader_pass->source.path = '\0';

View File

@ -23,13 +23,7 @@
RETRO_BEGIN_DECLS
struct video_shader *menu_shader_get();
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);
struct video_shader *menu_shader_get(void);
void menu_shader_manager_free(void);