mirror of
https://github.com/libretro/RetroArch.git
synced 2025-03-03 23:49:03 +00:00
Merge pull request #8657 from jdgleaver/rgui-particle-effects
(RGUI) Add 'particle effect' animation system
This commit is contained in:
commit
b0b4f859cc
@ -398,7 +398,7 @@ static bool rgui_full_width_layout = true;
|
||||
static unsigned rgui_aspect = RGUI_ASPECT_RATIO_4_3;
|
||||
static unsigned rgui_aspect_lock = RGUI_ASPECT_RATIO_LOCK_NONE;
|
||||
static bool rgui_shadows = false;
|
||||
static bool rgui_snow = false;
|
||||
static unsigned rgui_particle_effect = RGUI_PARTICLE_EFFECT_NONE;
|
||||
static bool rgui_extended_ascii = false;
|
||||
|
||||
#else
|
||||
|
@ -1519,7 +1519,6 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
|
||||
SETTING_BOOL("rgui_border_filler_thickness_enable", &settings->bools.menu_rgui_border_filler_thickness_enable, true, true, false);
|
||||
SETTING_BOOL("rgui_border_filler_enable", &settings->bools.menu_rgui_border_filler_enable, true, true, false);
|
||||
SETTING_BOOL("menu_rgui_shadows", &settings->bools.menu_rgui_shadows, true, rgui_shadows, false);
|
||||
SETTING_BOOL("menu_rgui_snow", &settings->bools.menu_rgui_snow, true, rgui_snow, false);
|
||||
SETTING_BOOL("menu_rgui_full_width_layout", &settings->bools.menu_rgui_full_width_layout, true, rgui_full_width_layout, false);
|
||||
SETTING_BOOL("rgui_inline_thumbnails", &settings->bools.menu_rgui_inline_thumbnails, true, rgui_inline_thumbnails, false);
|
||||
SETTING_BOOL("rgui_swap_thumbnails", &settings->bools.menu_rgui_swap_thumbnails, true, rgui_swap_thumbnails, false);
|
||||
@ -1716,6 +1715,7 @@ static struct config_uint_setting *populate_settings_uint(settings_t *settings,
|
||||
SETTING_UINT("rgui_internal_upscale_level", &settings->uints.menu_rgui_internal_upscale_level, true, rgui_internal_upscale_level, false);
|
||||
SETTING_UINT("rgui_aspect_ratio", &settings->uints.menu_rgui_aspect_ratio, true, rgui_aspect, false);
|
||||
SETTING_UINT("rgui_aspect_ratio_lock", &settings->uints.menu_rgui_aspect_ratio_lock, true, rgui_aspect_lock, false);
|
||||
SETTING_UINT("rgui_particle_effect", &settings->uints.menu_rgui_particle_effect, true, rgui_particle_effect, false);
|
||||
#endif
|
||||
#ifdef HAVE_LIBNX
|
||||
SETTING_UINT("split_joycon_p1", &settings->uints.input_split_joycon[0], true, 0, false);
|
||||
|
@ -173,7 +173,6 @@ typedef struct settings
|
||||
bool menu_rgui_border_filler_enable;
|
||||
bool menu_rgui_full_width_layout;
|
||||
bool menu_rgui_shadows;
|
||||
bool menu_rgui_snow;
|
||||
bool menu_rgui_inline_thumbnails;
|
||||
bool menu_rgui_swap_thumbnails;
|
||||
bool menu_rgui_extended_ascii;
|
||||
@ -455,6 +454,7 @@ typedef struct settings
|
||||
unsigned menu_rgui_internal_upscale_level;
|
||||
unsigned menu_rgui_aspect_ratio;
|
||||
unsigned menu_rgui_aspect_ratio_lock;
|
||||
unsigned menu_rgui_particle_effect;
|
||||
unsigned menu_ticker_type;
|
||||
|
||||
unsigned playlist_show_inline_core_name;
|
||||
|
@ -1627,8 +1627,8 @@ MSG_HASH(MENU_ENUM_LABEL_MENU_RGUI_FULL_WIDTH_LAYOUT,
|
||||
"menu_rgui_full_width_layout")
|
||||
MSG_HASH(MENU_ENUM_LABEL_MENU_RGUI_SHADOWS,
|
||||
"menu_rgui_shadows")
|
||||
MSG_HASH(MENU_ENUM_LABEL_MENU_RGUI_SNOW,
|
||||
"menu_rgui_snow")
|
||||
MSG_HASH(MENU_ENUM_LABEL_MENU_RGUI_PARTICLE_EFFECT,
|
||||
"rgui_particle_effect")
|
||||
MSG_HASH(MENU_ENUM_LABEL_MENU_RGUI_EXTENDED_ASCII,
|
||||
"rgui_extended_ascii")
|
||||
MSG_HASH(MENU_ENUM_LABEL_CONTENT_SHOW_REWIND,
|
||||
|
@ -6959,13 +6959,37 @@ MSG_HASH(
|
||||
"Enable drop shadows for menu text, borders and thumbnails. Has a modest performance impact."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_MENU_RGUI_SNOW,
|
||||
"Snow"
|
||||
MENU_ENUM_LABEL_VALUE_MENU_RGUI_PARTICLE_EFFECT,
|
||||
"Background Animation"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_MENU_RGUI_SNOW,
|
||||
"Enable snow, forces menu to update every frame"
|
||||
MENU_ENUM_SUBLABEL_MENU_RGUI_PARTICLE_EFFECT,
|
||||
"Enable background particle animation effect. Has a significant performance impact."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_NONE,
|
||||
"OFF"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_SNOW,
|
||||
"Snow (Light)"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_SNOW_ALT,
|
||||
"Snow (Heavy)"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_RAIN,
|
||||
"Rain"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_VORTEX,
|
||||
"Vortex"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_STARFIELD,
|
||||
"Star Field"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_MENU_RGUI_EXTENDED_ASCII,
|
||||
"Extended ASCII Support"
|
||||
|
@ -535,7 +535,7 @@ default_sublabel_macro(action_bind_sublabel_menu_rgui_aspect_ratio_lock,
|
||||
default_sublabel_macro(action_bind_sublabel_rgui_menu_color_theme, MENU_ENUM_SUBLABEL_RGUI_MENU_COLOR_THEME)
|
||||
default_sublabel_macro(action_bind_sublabel_rgui_menu_theme_preset, MENU_ENUM_SUBLABEL_RGUI_MENU_THEME_PRESET)
|
||||
default_sublabel_macro(action_bind_sublabel_menu_rgui_shadows, MENU_ENUM_SUBLABEL_MENU_RGUI_SHADOWS)
|
||||
default_sublabel_macro(action_bind_sublabel_menu_rgui_snow, MENU_ENUM_SUBLABEL_MENU_RGUI_SNOW)
|
||||
default_sublabel_macro(action_bind_sublabel_menu_rgui_particle_effect, MENU_ENUM_SUBLABEL_MENU_RGUI_PARTICLE_EFFECT)
|
||||
default_sublabel_macro(action_bind_sublabel_menu_rgui_inline_thumbnails, MENU_ENUM_SUBLABEL_MENU_RGUI_INLINE_THUMBNAILS)
|
||||
default_sublabel_macro(action_bind_sublabel_menu_rgui_swap_thumbnails, MENU_ENUM_SUBLABEL_MENU_RGUI_SWAP_THUMBNAILS)
|
||||
default_sublabel_macro(action_bind_sublabel_menu_rgui_thumbnail_downscaler, MENU_ENUM_SUBLABEL_MENU_RGUI_THUMBNAIL_DOWNSCALER)
|
||||
@ -2452,8 +2452,8 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
|
||||
case MENU_ENUM_LABEL_MENU_RGUI_SHADOWS:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_rgui_shadows);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_MENU_RGUI_SNOW:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_rgui_snow);
|
||||
case MENU_ENUM_LABEL_MENU_RGUI_PARTICLE_EFFECT:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_rgui_particle_effect);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_MENU_RGUI_INLINE_THUMBNAILS:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_rgui_inline_thumbnails);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -267,6 +267,17 @@ enum rgui_aspect_ratio_lock
|
||||
RGUI_ASPECT_RATIO_LOCK_LAST
|
||||
};
|
||||
|
||||
enum rgui_particle_animation_effect
|
||||
{
|
||||
RGUI_PARTICLE_EFFECT_NONE = 0,
|
||||
RGUI_PARTICLE_EFFECT_SNOW,
|
||||
RGUI_PARTICLE_EFFECT_SNOW_ALT,
|
||||
RGUI_PARTICLE_EFFECT_RAIN,
|
||||
RGUI_PARTICLE_EFFECT_VORTEX,
|
||||
RGUI_PARTICLE_EFFECT_STARFIELD,
|
||||
RGUI_PARTICLE_EFFECT_LAST
|
||||
};
|
||||
|
||||
enum menu_action
|
||||
{
|
||||
MENU_ACTION_NOOP = 0,
|
||||
|
@ -4306,7 +4306,7 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct
|
||||
{MENU_ENUM_LABEL_RGUI_MENU_COLOR_THEME, PARSE_ONLY_UINT},
|
||||
{MENU_ENUM_LABEL_RGUI_MENU_THEME_PRESET, PARSE_ONLY_PATH},
|
||||
{MENU_ENUM_LABEL_MENU_RGUI_SHADOWS, PARSE_ONLY_BOOL},
|
||||
{MENU_ENUM_LABEL_MENU_RGUI_SNOW, PARSE_ONLY_BOOL},
|
||||
{MENU_ENUM_LABEL_MENU_RGUI_PARTICLE_EFFECT, PARSE_ONLY_UINT},
|
||||
{MENU_ENUM_LABEL_DPI_OVERRIDE_ENABLE, PARSE_ONLY_BOOL},
|
||||
{MENU_ENUM_LABEL_DPI_OVERRIDE_VALUE, PARSE_ONLY_UINT},
|
||||
{MENU_ENUM_LABEL_XMB_ALPHA_FACTOR, PARSE_ONLY_UINT},
|
||||
|
@ -970,6 +970,54 @@ static void setting_get_string_representation_uint_rgui_aspect_ratio_lock(
|
||||
}
|
||||
}
|
||||
|
||||
static void setting_get_string_representation_uint_rgui_particle_effect(
|
||||
rarch_setting_t *setting,
|
||||
char *s, size_t len)
|
||||
{
|
||||
if (!setting)
|
||||
return;
|
||||
|
||||
switch (*setting->value.target.unsigned_integer)
|
||||
{
|
||||
case RGUI_PARTICLE_EFFECT_NONE:
|
||||
strlcpy(s,
|
||||
msg_hash_to_str(
|
||||
MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_NONE),
|
||||
len);
|
||||
break;
|
||||
case RGUI_PARTICLE_EFFECT_SNOW:
|
||||
strlcpy(s,
|
||||
msg_hash_to_str(
|
||||
MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_SNOW),
|
||||
len);
|
||||
break;
|
||||
case RGUI_PARTICLE_EFFECT_SNOW_ALT:
|
||||
strlcpy(s,
|
||||
msg_hash_to_str(
|
||||
MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_SNOW_ALT),
|
||||
len);
|
||||
break;
|
||||
case RGUI_PARTICLE_EFFECT_RAIN:
|
||||
strlcpy(s,
|
||||
msg_hash_to_str(
|
||||
MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_RAIN),
|
||||
len);
|
||||
break;
|
||||
case RGUI_PARTICLE_EFFECT_VORTEX:
|
||||
strlcpy(s,
|
||||
msg_hash_to_str(
|
||||
MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_VORTEX),
|
||||
len);
|
||||
break;
|
||||
case RGUI_PARTICLE_EFFECT_STARFIELD:
|
||||
strlcpy(s,
|
||||
msg_hash_to_str(
|
||||
MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_STARFIELD),
|
||||
len);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void setting_get_string_representation_uint_menu_ticker_type(
|
||||
rarch_setting_t *setting,
|
||||
char *s, size_t len)
|
||||
@ -8599,20 +8647,22 @@ static bool setting_append_list(
|
||||
general_read_handler,
|
||||
SD_FLAG_NONE);
|
||||
|
||||
CONFIG_BOOL(
|
||||
CONFIG_UINT(
|
||||
list, list_info,
|
||||
&settings->bools.menu_rgui_snow,
|
||||
MENU_ENUM_LABEL_MENU_RGUI_SNOW,
|
||||
MENU_ENUM_LABEL_VALUE_MENU_RGUI_SNOW,
|
||||
rgui_snow,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&settings->uints.menu_rgui_particle_effect,
|
||||
MENU_ENUM_LABEL_MENU_RGUI_PARTICLE_EFFECT,
|
||||
MENU_ENUM_LABEL_VALUE_MENU_RGUI_PARTICLE_EFFECT,
|
||||
rgui_particle_effect,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler,
|
||||
SD_FLAG_NONE);
|
||||
general_read_handler);
|
||||
(*list)[list_info->index - 1].action_ok = &setting_action_ok_uint;
|
||||
(*list)[list_info->index - 1].get_string_representation =
|
||||
&setting_get_string_representation_uint_rgui_particle_effect;
|
||||
menu_settings_list_current_add_range(list, list_info, 0, RGUI_PARTICLE_EFFECT_LAST-1, 1, true, true);
|
||||
(*list)[list_info->index - 1].ui_type = ST_UI_TYPE_UINT_COMBOBOX;
|
||||
|
||||
CONFIG_BOOL(
|
||||
list, list_info,
|
||||
|
@ -873,7 +873,7 @@ enum msg_hash_enums
|
||||
MENU_LABEL(MENU_RGUI_ASPECT_RATIO_LOCK),
|
||||
MENU_LABEL(MENU_RGUI_FULL_WIDTH_LAYOUT),
|
||||
MENU_LABEL(MENU_RGUI_SHADOWS),
|
||||
MENU_LABEL(MENU_RGUI_SNOW),
|
||||
MENU_LABEL(MENU_RGUI_PARTICLE_EFFECT),
|
||||
MENU_LABEL(MENU_RGUI_EXTENDED_ASCII),
|
||||
MENU_LABEL(MENU_LINEAR_FILTER),
|
||||
MENU_LABEL(MENU_HORIZONTAL_ANIMATION),
|
||||
@ -2016,6 +2016,13 @@ enum msg_hash_enums
|
||||
MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_FIT_SCREEN,
|
||||
MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_INTEGER,
|
||||
|
||||
MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_NONE,
|
||||
MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_SNOW,
|
||||
MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_SNOW_ALT,
|
||||
MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_RAIN,
|
||||
MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_VORTEX,
|
||||
MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_STARFIELD,
|
||||
|
||||
/* Callback strings */
|
||||
MENU_ENUM_LABEL_CB_CORE_CONTENT_DIRS_LIST,
|
||||
MENU_ENUM_LABEL_CB_CORE_CONTENT_DOWNLOAD,
|
||||
|
Loading…
x
Reference in New Issue
Block a user