diff --git a/intl/msg_hash_us.c b/intl/msg_hash_us.c index 33917a63cb..f1a8d6845c 100644 --- a/intl/msg_hash_us.c +++ b/intl/msg_hash_us.c @@ -2146,6 +2146,8 @@ const char *msg_hash_to_str_us(enum msg_hash_enums msg) return "Green"; case MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_DARK_BLUE: return "Dark Blue"; + case MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_WALLPAPER: + return "Wallpaper"; case MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_LEGACY_RED: return "Legacy Red"; case MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_DARK_PURPLE: diff --git a/menu/cbs/menu_cbs_get_value.c b/menu/cbs/menu_cbs_get_value.c index 5f24bfec8a..8a4e6feee9 100644 --- a/menu/cbs/menu_cbs_get_value.c +++ b/menu/cbs/menu_cbs_get_value.c @@ -715,6 +715,12 @@ static void menu_action_setting_disp_set_label_xmb_menu_color_theme( switch (settings->menu.xmb.menu_color_theme) { + case XMB_THEME_WALLPAPER: + strlcpy(s, + msg_hash_to_str( + MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_WALLPAPER), + len); + break; case XMB_THEME_LEGACY_RED: strlcpy(s, msg_hash_to_str( diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index f69d10e02c..4549cb04a0 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -1925,7 +1925,9 @@ static void xmb_draw_bg( menu_display_set_viewport(); #ifdef HAVE_SHADERPIPELINE - if (settings->menu.xmb.shader_pipeline > 0) + if (settings->menu.xmb.shader_pipeline > 0 + && + (settings->menu.xmb.menu_color_theme != XMB_THEME_WALLPAPER)) { draw.color = xmb_gradient_ident(); diff --git a/menu/menu_display.c b/menu/menu_display.c index 730f61bbc8..ec1cdab204 100644 --- a/menu/menu_display.c +++ b/menu/menu_display.c @@ -498,6 +498,7 @@ void menu_display_draw_bg(menu_display_ctx_draw_t *draw) static struct video_coords coords; const float *new_vertex = NULL; const float *new_tex_coord = NULL; + bool add_opacity_to_wallpaper = false; settings_t *settings = config_get_ptr(); if (!menu_disp || !draw) return; @@ -519,6 +520,12 @@ void menu_display_draw_bg(menu_display_ctx_draw_t *draw) draw->coords = &coords; if (!menu_display_libretro_running() && !menu_display_shader_pipeline_active()) + add_opacity_to_wallpaper = true; + if (string_is_equal(menu_driver_ident(), "xmb") + && settings->menu.xmb.menu_color_theme == XMB_THEME_WALLPAPER) + add_opacity_to_wallpaper = true; + + if (add_opacity_to_wallpaper) menu_display_set_alpha(draw->color, settings->menu.wallpaper.opacity); if (!draw->texture) diff --git a/menu/menu_display.h b/menu/menu_display.h index de85107240..3425734265 100644 --- a/menu/menu_display.h +++ b/menu/menu_display.h @@ -37,7 +37,8 @@ enum materialui_color_theme MATERIALUI_THEME_GREEN, MATERIALUI_THEME_RED, MATERIALUI_THEME_YELLOW, - MATERIALUI_THEME_NVIDIA_SHIELD + MATERIALUI_THEME_NVIDIA_SHIELD, + MATERIALUI_THEME_LAST }; enum xmb_color_theme @@ -50,7 +51,9 @@ enum xmb_color_theme XMB_THEME_APPLE_GREEN, XMB_THEME_UNDERSEA, XMB_THEME_VOLCANIC_RED, - XMB_THEME_DARK + XMB_THEME_DARK, + XMB_THEME_WALLPAPER, + XMB_THEME_LAST }; enum menu_display_prim_type diff --git a/menu/menu_setting.c b/menu/menu_setting.c index e1b41d90db..228b1b70e0 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -6946,7 +6946,7 @@ static bool setting_append_list( parent_group, general_write_handler, general_read_handler); - menu_settings_list_current_add_range(list, list_info, 0, 8, 1, true, true); + menu_settings_list_current_add_range(list, list_info, 0, XMB_THEME_LAST-1, 1, true, true); menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_XMB_MENU_COLOR_THEME); } @@ -6964,7 +6964,7 @@ static bool setting_append_list( parent_group, general_write_handler, general_read_handler); - menu_settings_list_current_add_range(list, list_info, 0, 6, 1, true, true); + menu_settings_list_current_add_range(list, list_info, 0, MATERIALUI_THEME_LAST-1, 1, true, true); menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_MATERIALUI_MENU_COLOR_THEME); CONFIG_FLOAT( diff --git a/msg_hash.h b/msg_hash.h index 14767a4bbc..8d1672a465 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -300,6 +300,7 @@ enum msg_hash_enums MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_UNDERSEA, MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_VOLCANIC_RED, MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_DARK, + MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_WALLPAPER, MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_RIBBON_SIMPLIFIED, MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_RIBBON,