From 989823691e3c7f2d8108e60eebf3aef1ac1cc389 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Andr=C3=A9=20Santoni?= Date: Fri, 22 Apr 2016 12:46:56 +0700 Subject: [PATCH 1/5] (XMB) Normalize the shadows setting name --- config.def.h | 2 +- configuration.c | 6 +++--- configuration.h | 2 +- menu/drivers/xmb.c | 4 ++-- menu/intl/menu_hash_us.c | 8 ++++---- menu/menu_hash.h | 4 ++-- menu/menu_setting.c | 8 ++++---- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/config.def.h b/config.def.h index ac5020585e..686457ae7a 100644 --- a/config.def.h +++ b/config.def.h @@ -511,7 +511,7 @@ static bool default_block_config_read = true; static unsigned xmb_scale_factor = 100; static unsigned xmb_alpha_factor = 75; static unsigned xmb_theme = 0; -static bool xmb_shadows = false; +static bool xmb_shadows_enable = false; static bool xmb_ribbon_enable = false; static bool show_advanced_settings = true; diff --git a/configuration.c b/configuration.c index ce51498008..b477622899 100644 --- a/configuration.c +++ b/configuration.c @@ -483,7 +483,7 @@ static void config_set_defaults(void) settings->menu.xmb_scale_factor = xmb_scale_factor; settings->menu.xmb_alpha_factor = xmb_alpha_factor; settings->menu.xmb_theme = xmb_theme; - settings->menu.xmb_shadows = xmb_shadows; + settings->menu.xmb_shadows_enable = xmb_shadows_enable; settings->menu.xmb_ribbon_enable = xmb_ribbon_enable; settings->menu.xmb_font[0] = '\0'; settings->menu.throttle_framerate = true; @@ -1542,7 +1542,7 @@ static bool config_load_file(const char *path, bool set_defaults) CONFIG_GET_INT_BASE(conf, settings, menu.xmb_scale_factor, "xmb_scale_factor"); CONFIG_GET_INT_BASE(conf, settings, menu.xmb_alpha_factor, "xmb_alpha_factor"); CONFIG_GET_INT_BASE(conf, settings, menu.xmb_theme, "xmb_theme"); - CONFIG_GET_BOOL_BASE(conf, settings, menu.xmb_shadows, "xmb_shadows"); + CONFIG_GET_BOOL_BASE(conf, settings, menu.xmb_shadows_enable, "xmb_shadows_enable"); CONFIG_GET_BOOL_BASE(conf, settings, menu.xmb_ribbon_enable, "xmb_ribbon_enable"); config_get_path(conf, "xmb_font", settings->menu.xmb_font, sizeof(settings->menu.xmb_font)); #endif @@ -2775,7 +2775,7 @@ bool config_save_file(const char *path) config_set_int(conf, "xmb_scale_factor", settings->menu.xmb_scale_factor); config_set_int(conf, "xmb_alpha_factor", settings->menu.xmb_alpha_factor); config_set_int(conf, "xmb_theme", settings->menu.xmb_theme); - config_set_bool(conf, "xmb_shadows", settings->menu.xmb_shadows); + config_set_bool(conf, "xmb_shadows_enable", settings->menu.xmb_shadows_enable); config_set_bool(conf, "xmb_ribbon_enable", settings->menu.xmb_ribbon_enable); config_set_path(conf, "xmb_font", !string_is_empty(settings->menu.xmb_font) ? settings->menu.xmb_font : ""); diff --git a/configuration.h b/configuration.h index b916d9d39f..49638c1f20 100644 --- a/configuration.h +++ b/configuration.h @@ -167,7 +167,7 @@ typedef struct settings unsigned xmb_scale_factor; unsigned xmb_alpha_factor; unsigned xmb_theme; - bool xmb_shadows; + bool xmb_shadows_enable; bool xmb_ribbon_enable; char xmb_font[PATH_MAX_LENGTH]; bool throttle_framerate; diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 98fbcaf9a2..226741f215 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -405,7 +405,7 @@ static void xmb_draw_icon( draw.texture = texture; draw.prim_type = MENU_DISPLAY_PRIM_TRIANGLESTRIP; - if (settings->menu.xmb_shadows) + if (settings->menu.xmb_shadows_enable) { for (i = 0; i < 16; i++) shadow[i] = 0; @@ -496,7 +496,7 @@ static void xmb_draw_text(xmb_handle_t *xmb, params.full_screen = true; params.text_align = text_align; - if (settings->menu.xmb_shadows) + if (settings->menu.xmb_shadows_enable) { params.drop_x = 2.0f; params.drop_y = -2.0f; diff --git a/menu/intl/menu_hash_us.c b/menu/intl/menu_hash_us.c index b47ea6dfa5..8e18d13efb 100644 --- a/menu/intl/menu_hash_us.c +++ b/menu/intl/menu_hash_us.c @@ -300,8 +300,8 @@ static const char *menu_hash_to_str_us_label(uint32_t hash) return "xmb_font"; case MENU_LABEL_XMB_THEME: return "xmb_theme"; - case MENU_LABEL_XMB_SHADOWS: - return "xmb_shadows"; + case MENU_LABEL_XMB_SHADOWS_ENABLE: + return "xmb_shadows_enable"; case MENU_LABEL_XMB_RIBBON_ENABLE: return "xmb_ribbon_enable"; case MENU_LABEL_XMB_SCALE_FACTOR: @@ -1060,8 +1060,8 @@ const char *menu_hash_to_str_us(uint32_t hash) return "XMB Font"; case MENU_LABEL_VALUE_XMB_THEME: return "XMB Theme"; - case MENU_LABEL_VALUE_XMB_SHADOWS: - return "XMB Shadows"; + case MENU_LABEL_VALUE_XMB_SHADOWS_ENABLE: + return "XMB Shadows Enable"; case MENU_LABEL_VALUE_XMB_RIBBON_ENABLE: return "XMB Ribbon Enable"; case MENU_LABEL_VALUE_SUSPEND_SCREENSAVER_ENABLE: diff --git a/menu/menu_hash.h b/menu/menu_hash.h index 0e019fc40e..4478e295fe 100644 --- a/menu/menu_hash.h +++ b/menu/menu_hash.h @@ -388,8 +388,8 @@ extern "C" { #define MENU_LABEL_VALUE_XMB_FONT 0x0020337E7 #define MENU_LABEL_XMB_THEME 0x824c5a7eU #define MENU_LABEL_VALUE_XMB_THEME 0x3603f65fU -#define MENU_LABEL_XMB_SHADOWS 0xf9859e24U -#define MENU_LABEL_VALUE_XMB_SHADOWS 0x7993b645U +#define MENU_LABEL_XMB_SHADOWS_ENABLE 0xd0fcc82aU +#define MENU_LABEL_VALUE_XMB_SHADOWS_ENABLE 0x5982498cU #define MENU_LABEL_XMB_RIBBON_ENABLE 0x8e89c3edU #define MENU_LABEL_VALUE_XMB_RIBBON_ENABLE 0xd53e09c8U #define MENU_LABEL_VOLUME_UP 0xa66e9681U diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 038c8dddef..11a7296e05 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -5877,10 +5877,10 @@ static bool setting_append_list( CONFIG_BOOL( list, list_info, - &settings->menu.xmb_shadows, - menu_hash_to_str(MENU_LABEL_XMB_SHADOWS), - menu_hash_to_str(MENU_LABEL_VALUE_XMB_SHADOWS), - xmb_shadows, + &settings->menu.xmb_shadows_enable, + menu_hash_to_str(MENU_LABEL_XMB_SHADOWS_ENABLE), + menu_hash_to_str(MENU_LABEL_VALUE_XMB_SHADOWS_ENABLE), + xmb_shadows_enable, menu_hash_to_str(MENU_VALUE_OFF), menu_hash_to_str(MENU_VALUE_ON), &group_info, From a4308640a219fd214c8c721aa8893e0057dc16ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Andr=C3=A9=20Santoni?= Date: Fri, 22 Apr 2016 13:47:14 +0700 Subject: [PATCH 2/5] (XMB) Gradient switching --- config.def.h | 1 + configuration.c | 3 +++ configuration.h | 1 + menu/cbs/menu_cbs_get_value.c | 37 +++++++++++++++++++++++++ menu/drivers/xmb.c | 51 +++++++++++++++++++++++++++++++++++ menu/intl/menu_hash_us.c | 4 +++ menu/menu_display.c | 14 ---------- menu/menu_hash.h | 2 ++ menu/menu_setting.c | 13 +++++++++ 9 files changed, 112 insertions(+), 14 deletions(-) diff --git a/config.def.h b/config.def.h index 686457ae7a..12c146ddae 100644 --- a/config.def.h +++ b/config.def.h @@ -511,6 +511,7 @@ static bool default_block_config_read = true; static unsigned xmb_scale_factor = 100; static unsigned xmb_alpha_factor = 75; static unsigned xmb_theme = 0; +static unsigned xmb_gradient = 0; static bool xmb_shadows_enable = false; static bool xmb_ribbon_enable = false; diff --git a/configuration.c b/configuration.c index b477622899..62f40ce47b 100644 --- a/configuration.c +++ b/configuration.c @@ -483,6 +483,7 @@ static void config_set_defaults(void) settings->menu.xmb_scale_factor = xmb_scale_factor; settings->menu.xmb_alpha_factor = xmb_alpha_factor; settings->menu.xmb_theme = xmb_theme; + settings->menu.xmb_gradient = xmb_gradient; settings->menu.xmb_shadows_enable = xmb_shadows_enable; settings->menu.xmb_ribbon_enable = xmb_ribbon_enable; settings->menu.xmb_font[0] = '\0'; @@ -1542,6 +1543,7 @@ static bool config_load_file(const char *path, bool set_defaults) CONFIG_GET_INT_BASE(conf, settings, menu.xmb_scale_factor, "xmb_scale_factor"); CONFIG_GET_INT_BASE(conf, settings, menu.xmb_alpha_factor, "xmb_alpha_factor"); CONFIG_GET_INT_BASE(conf, settings, menu.xmb_theme, "xmb_theme"); + CONFIG_GET_INT_BASE(conf, settings, menu.xmb_gradient, "xmb_gradient"); CONFIG_GET_BOOL_BASE(conf, settings, menu.xmb_shadows_enable, "xmb_shadows_enable"); CONFIG_GET_BOOL_BASE(conf, settings, menu.xmb_ribbon_enable, "xmb_ribbon_enable"); config_get_path(conf, "xmb_font", settings->menu.xmb_font, sizeof(settings->menu.xmb_font)); @@ -2775,6 +2777,7 @@ bool config_save_file(const char *path) config_set_int(conf, "xmb_scale_factor", settings->menu.xmb_scale_factor); config_set_int(conf, "xmb_alpha_factor", settings->menu.xmb_alpha_factor); config_set_int(conf, "xmb_theme", settings->menu.xmb_theme); + config_set_int(conf, "xmb_gradient", settings->menu.xmb_gradient); config_set_bool(conf, "xmb_shadows_enable", settings->menu.xmb_shadows_enable); config_set_bool(conf, "xmb_ribbon_enable", settings->menu.xmb_ribbon_enable); config_set_path(conf, "xmb_font", diff --git a/configuration.h b/configuration.h index 49638c1f20..085f0ace45 100644 --- a/configuration.h +++ b/configuration.h @@ -167,6 +167,7 @@ typedef struct settings unsigned xmb_scale_factor; unsigned xmb_alpha_factor; unsigned xmb_theme; + unsigned xmb_gradient; bool xmb_shadows_enable; bool xmb_ribbon_enable; char xmb_font[PATH_MAX_LENGTH]; diff --git a/menu/cbs/menu_cbs_get_value.c b/menu/cbs/menu_cbs_get_value.c index 42e0ac6e83..94f809036e 100644 --- a/menu/cbs/menu_cbs_get_value.c +++ b/menu/cbs/menu_cbs_get_value.c @@ -619,6 +619,39 @@ static void menu_action_setting_disp_set_label_xmb_theme( } } +static void menu_action_setting_disp_set_label_xmb_gradient( + file_list_t* list, + unsigned *w, unsigned type, unsigned i, + const char *label, + char *s, size_t len, + const char *entry_label, + const char *path, + char *s2, size_t len2) +{ + settings_t *settings = config_get_ptr(); + + if (!settings) + return; + + strlcpy(s2, path, len2); + *w = 19; + switch (settings->menu.xmb_gradient) + { + case 0: + snprintf(s, len, "%s", "Pomegranate"); + break; + case 1: + snprintf(s, len, "%s", "Volcano"); + break; + case 2: + snprintf(s, len, "%s", "Midnight Blue"); + break; + case 3: + snprintf(s, len, "%s", "Wisteria"); + break; + } +} + static void menu_action_setting_disp_set_label_thumbnails( file_list_t* list, unsigned *w, unsigned type, unsigned i, @@ -1209,6 +1242,10 @@ static int menu_cbs_init_bind_get_string_representation_compare_label( BIND_ACTION_GET_VALUE(cbs, menu_action_setting_disp_set_label_xmb_theme); break; + case MENU_LABEL_XMB_GRADIENT: + BIND_ACTION_GET_VALUE(cbs, + menu_action_setting_disp_set_label_xmb_gradient); + break; case MENU_LABEL_THUMBNAILS: BIND_ACTION_GET_VALUE(cbs, menu_action_setting_disp_set_label_thumbnails); diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 226741f215..dceed3a666 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -231,6 +231,34 @@ typedef struct xmb_handle gfx_font_raster_block_t raster_block; } xmb_handle_t; +float gradient_volcano[16] = { + 1, 0, 0.1, 1, + 1, 0.1, 0, 1, + 0.05, 0, 0.05, 1, + 0.05, 0, 0.05, 1, +}; + +float gradient_midnight_blue[16] = { + 44/255.0, 62/255.0, 80/255.0, 1.0, + 44/255.0, 62/255.0, 80/255.0, 1.0, + 44/255.0, 62/255.0, 80/255.0, 1.0, + 44/255.0, 62/255.0, 80/255.0, 1.0, +}; + +float gradient_wisteria[16] = { + 142/255.0, 68/255.0, 173/255.0, 1.0, + 142/255.0, 68/255.0, 173/255.0, 1.0, + 142/255.0, 68/255.0, 173/255.0, 1.0, + 142/255.0, 68/255.0, 173/255.0, 1.0, +}; + +float gradient_pomegranate[16] = { + 192/255.0, 57/255.0, 43/255.0, 1.0, + 192/255.0, 57/255.0, 43/255.0, 1.0, + 192/255.0, 57/255.0, 43/255.0, 1.0, + 192/255.0, 57/255.0, 43/255.0, 1.0, +}; + static const char *xmb_theme_ident(void) { settings_t *settings = config_get_ptr(); @@ -270,6 +298,26 @@ static const char *xmb_thumbnails_ident(void) return "OFF"; } +static float *xmb_gradient_ident(void) +{ + settings_t *settings = config_get_ptr(); + + switch (settings->menu.xmb_gradient) + { + case 1: + return &gradient_volcano[0]; + case 2: + return &gradient_midnight_blue[0]; + case 3: + return &gradient_wisteria[0]; + case 0: + default: + break; + } + + return &gradient_pomegranate[0]; +} + static void xmb_fill_default_background_path(xmb_handle_t *xmb, char *path, size_t size) { @@ -1830,6 +1878,9 @@ static void xmb_draw_bg( if (settings->menu.xmb_ribbon_enable) { + draw.color = xmb_gradient_ident(); + menu_display_set_alpha(draw.color, coord_color[3]); + menu_display_ctl(MENU_DISPLAY_CTL_DRAW_GRADIENT, &draw); menu_display_ctl(MENU_DISPLAY_CTL_DRAW_RIBBON, &draw); } else diff --git a/menu/intl/menu_hash_us.c b/menu/intl/menu_hash_us.c index 8e18d13efb..824c959046 100644 --- a/menu/intl/menu_hash_us.c +++ b/menu/intl/menu_hash_us.c @@ -300,6 +300,8 @@ static const char *menu_hash_to_str_us_label(uint32_t hash) return "xmb_font"; case MENU_LABEL_XMB_THEME: return "xmb_theme"; + case MENU_LABEL_XMB_GRADIENT: + return "xmb_gradient"; case MENU_LABEL_XMB_SHADOWS_ENABLE: return "xmb_shadows_enable"; case MENU_LABEL_XMB_RIBBON_ENABLE: @@ -1060,6 +1062,8 @@ const char *menu_hash_to_str_us(uint32_t hash) return "XMB Font"; case MENU_LABEL_VALUE_XMB_THEME: return "XMB Theme"; + case MENU_LABEL_VALUE_XMB_GRADIENT: + return "XMB Gradient"; case MENU_LABEL_VALUE_XMB_SHADOWS_ENABLE: return "XMB Shadows Enable"; case MENU_LABEL_VALUE_XMB_RIBBON_ENABLE: diff --git a/menu/menu_display.c b/menu/menu_display.c index 5ecda24b62..6fb1f240f1 100644 --- a/menu/menu_display.c +++ b/menu/menu_display.c @@ -522,19 +522,7 @@ bool menu_display_ctl(enum menu_display_ctl_state state, void *data) case MENU_DISPLAY_CTL_DRAW_GRADIENT: { menu_display_ctx_draw_t *draw = (menu_display_ctx_draw_t*)data; - float bg[16] = { - 1, 0, 0.1, 1, - 1, 0.1, 0, 1, - 0.05, 0, 0.05, 1, - 0.05, 0, 0.05, 1 - }; - bg[3] = draw->color[3]; - bg[7] = draw->color[7]; - bg[11] = draw->color[11]; - bg[15] = draw->color[15]; - - draw->color = bg; draw->texture = 0; draw->x = 0; draw->y = 0; @@ -552,8 +540,6 @@ bool menu_display_ctl(enum menu_display_ctl_state state, void *data) menu_display_ctl(MENU_DISPLAY_CTL_COORDS_ARRAY_GET, &ca); - menu_display_ctl(MENU_DISPLAY_CTL_DRAW_GRADIENT, draw); - draw->x = 0; draw->y = 0; draw->coords = (struct gfx_coords*)(&ca->coords); diff --git a/menu/menu_hash.h b/menu/menu_hash.h index 4478e295fe..facb09b4e4 100644 --- a/menu/menu_hash.h +++ b/menu/menu_hash.h @@ -388,6 +388,8 @@ extern "C" { #define MENU_LABEL_VALUE_XMB_FONT 0x0020337E7 #define MENU_LABEL_XMB_THEME 0x824c5a7eU #define MENU_LABEL_VALUE_XMB_THEME 0x3603f65fU +#define MENU_LABEL_XMB_GRADIENT 0x18e63099U +#define MENU_LABEL_VALUE_XMB_GRADIENT 0x8a520681U #define MENU_LABEL_XMB_SHADOWS_ENABLE 0xd0fcc82aU #define MENU_LABEL_VALUE_XMB_SHADOWS_ENABLE 0x5982498cU #define MENU_LABEL_XMB_RIBBON_ENABLE 0x8e89c3edU diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 11a7296e05..8c2d1b07f3 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -5902,6 +5902,19 @@ static bool setting_append_list( parent_group, general_write_handler, general_read_handler); + + CONFIG_UINT( + list, list_info, + &settings->menu.xmb_gradient, + menu_hash_to_str(MENU_LABEL_XMB_GRADIENT), + menu_hash_to_str(MENU_LABEL_VALUE_XMB_GRADIENT), + xmb_gradient, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler); + menu_settings_list_current_add_range(list, list_info, 0, 3, 1, true, true); } CONFIG_BOOL( From fe255f103ef787efedae3c61a3a9efd2055706a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Andr=C3=A9=20Santoni?= Date: Fri, 22 Apr 2016 14:05:18 +0700 Subject: [PATCH 3/5] (XMB) Use a separate function to darken the screen --- menu/drivers/xmb.c | 43 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 9 deletions(-) diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index dceed3a666..d1e4b73623 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -1893,6 +1893,39 @@ static void xmb_draw_bg( menu_display_ctl(MENU_DISPLAY_CTL_BLEND_END, NULL); } +static void xmb_draw_dark_layer( + xmb_handle_t *xmb, + unsigned width, + unsigned height) +{ + menu_display_ctx_draw_t draw; + settings_t *settings = config_get_ptr(); + + float black[16] = { + 0, 0, 0, 1, + 0, 0, 0, 1, + 0, 0, 0, 1, + 0, 0, 0, 1, + }; + + menu_display_set_alpha(black, xmb->alpha < 0.75 ? xmb->alpha : 0.75); + + draw.x = 0; + draw.y = 0; + draw.width = width; + draw.height = height; + draw.color = &black[0]; + draw.vertex = NULL; + draw.tex_coord = NULL; + draw.vertex_count = 4; + draw.prim_type = MENU_DISPLAY_PRIM_TRIANGLESTRIP; + + menu_display_ctl(MENU_DISPLAY_CTL_BLEND_BEGIN, NULL); + menu_display_ctl(MENU_DISPLAY_CTL_SET_VIEWPORT, NULL); + menu_display_ctl(MENU_DISPLAY_CTL_DRAW_BG, &draw); + menu_display_ctl(MENU_DISPLAY_CTL_BLEND_END, NULL); +} + static void xmb_frame(void *data) { size_t selection; @@ -2124,15 +2157,7 @@ static void xmb_frame(void *data) if (render_background) { - xmb_draw_bg( - xmb, - width, - height, - xmb->alpha, - true, - xmb->textures.bg, - coord_color, - coord_color2); + xmb_draw_dark_layer(xmb, width, height); xmb_render_messagebox_internal(xmb, msg); } From 171453ac1dc6273e17103617c2fa8d68b85b71fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Andr=C3=A9=20Santoni?= Date: Fri, 22 Apr 2016 14:27:34 +0700 Subject: [PATCH 4/5] (XMB) Use MENU_DISPLAY_CTL_DRAW instead of MENU_DISPLAY_CTL_DRAW_BG in xmb_draw_dark_layer --- menu/drivers/xmb.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index d1e4b73623..7d094bd201 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -1898,9 +1898,9 @@ static void xmb_draw_dark_layer( unsigned width, unsigned height) { - menu_display_ctx_draw_t draw; - settings_t *settings = config_get_ptr(); + menu_display_ctx_draw_t draw; + struct gfx_coords coords; float black[16] = { 0, 0, 0, 1, 0, 0, 0, 1, @@ -1910,19 +1910,23 @@ static void xmb_draw_dark_layer( menu_display_set_alpha(black, xmb->alpha < 0.75 ? xmb->alpha : 0.75); - draw.x = 0; - draw.y = 0; - draw.width = width; - draw.height = height; - draw.color = &black[0]; - draw.vertex = NULL; - draw.tex_coord = NULL; - draw.vertex_count = 4; - draw.prim_type = MENU_DISPLAY_PRIM_TRIANGLESTRIP; + coords.vertices = 4; + coords.vertex = NULL; + coords.tex_coord = NULL; + coords.lut_tex_coord = NULL; + coords.color = &black[0]; + + draw.x = 0; + draw.y = 0; + draw.width = width; + draw.height = height; + draw.coords = &coords; + draw.matrix_data = NULL; + draw.texture = menu_display_white_texture; + draw.prim_type = MENU_DISPLAY_PRIM_TRIANGLESTRIP; menu_display_ctl(MENU_DISPLAY_CTL_BLEND_BEGIN, NULL); - menu_display_ctl(MENU_DISPLAY_CTL_SET_VIEWPORT, NULL); - menu_display_ctl(MENU_DISPLAY_CTL_DRAW_BG, &draw); + menu_display_ctl(MENU_DISPLAY_CTL_DRAW, &draw); menu_display_ctl(MENU_DISPLAY_CTL_BLEND_END, NULL); } From f8f8650349568338ae1adc70a69a334135a600c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Andr=C3=A9=20Santoni?= Date: Fri, 22 Apr 2016 15:20:08 +0700 Subject: [PATCH 5/5] (XMB) More gradients --- menu/cbs/menu_cbs_get_value.c | 15 ++++++-- menu/drivers/xmb.c | 64 +++++++++++++++++++++++++---------- menu/menu_setting.c | 2 +- 3 files changed, 59 insertions(+), 22 deletions(-) diff --git a/menu/cbs/menu_cbs_get_value.c b/menu/cbs/menu_cbs_get_value.c index 94f809036e..e1e7546595 100644 --- a/menu/cbs/menu_cbs_get_value.c +++ b/menu/cbs/menu_cbs_get_value.c @@ -638,16 +638,25 @@ static void menu_action_setting_disp_set_label_xmb_gradient( switch (settings->menu.xmb_gradient) { case 0: - snprintf(s, len, "%s", "Pomegranate"); + snprintf(s, len, "%s", "Legacy Red"); break; case 1: - snprintf(s, len, "%s", "Volcano"); + snprintf(s, len, "%s", "Dark Purple"); break; case 2: snprintf(s, len, "%s", "Midnight Blue"); break; case 3: - snprintf(s, len, "%s", "Wisteria"); + snprintf(s, len, "%s", "Golden"); + break; + case 4: + snprintf(s, len, "%s", "Electric Blue"); + break; + case 5: + snprintf(s, len, "%s", "Apple Green"); + break; + case 6: + snprintf(s, len, "%s", "Undersea"); break; } } diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 7d094bd201..05ab107662 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -231,11 +231,11 @@ typedef struct xmb_handle gfx_font_raster_block_t raster_block; } xmb_handle_t; -float gradient_volcano[16] = { - 1, 0, 0.1, 1, - 1, 0.1, 0, 1, - 0.05, 0, 0.05, 1, - 0.05, 0, 0.05, 1, +float gradient_dark_purple[16] = { + 20/255.0, 13/255.0, 20/255.0, 1.0, + 20/255.0, 13/255.0, 20/255.0, 1.0, + 92/255.0, 44/255.0, 92/255.0, 1.0, + 148/255.0, 90/255.0, 148/255.0, 1.0, }; float gradient_midnight_blue[16] = { @@ -245,18 +245,40 @@ float gradient_midnight_blue[16] = { 44/255.0, 62/255.0, 80/255.0, 1.0, }; -float gradient_wisteria[16] = { - 142/255.0, 68/255.0, 173/255.0, 1.0, - 142/255.0, 68/255.0, 173/255.0, 1.0, - 142/255.0, 68/255.0, 173/255.0, 1.0, - 142/255.0, 68/255.0, 173/255.0, 1.0, +float gradient_golden[16] = { + 174/255.0, 123/255.0, 44/255.0, 1.0, + 205/255.0, 174/255.0, 84/255.0, 1.0, + 58/255.0, 43/255.0, 24/255.0, 1.0, + 58/255.0, 43/255.0, 24/255.0, 1.0, }; -float gradient_pomegranate[16] = { - 192/255.0, 57/255.0, 43/255.0, 1.0, - 192/255.0, 57/255.0, 43/255.0, 1.0, - 192/255.0, 57/255.0, 43/255.0, 1.0, - 192/255.0, 57/255.0, 43/255.0, 1.0, +float gradient_legacy_red[16] = { + 171/255.0, 70/255.0, 59/255.0, 1.0, + 171/255.0, 70/255.0, 59/255.0, 1.0, + 190/255.0, 80/255.0, 69/255.0, 1.0, + 190/255.0, 80/255.0, 69/255.0, 1.0, +}; + +float gradient_electric_blue[16] = { + 1/255.0, 2/255.0, 67/255.0, 1.0, + 1/255.0, 73/255.0, 183/255.0, 1.0, + 1/255.0, 93/255.0, 194/255.0, 1.0, + 3/255.0, 162/255.0, 254/255.0, 1.0, +}; + +float gradient_apple_green[16] = { + 102/255.0, 134/255.0, 58/255.0, 1.0, + 122/255.0, 131/255.0, 52/255.0, 1.0, + 82/255.0, 101/255.0, 35/255.0, 1.0, + 63/255.0, 95/255.0, 30/255.0, 1.0, +}; + +float gradient_undersea[16] = { + 23/255.0, 18/255.0, 41/255.0, 1.0, + 30/255.0, 72/255.0, 114/255.0, 1.0, + 52/255.0, 88/255.0, 110/255.0, 1.0, + 69/255.0, 125/255.0, 140/255.0, 1.0, + }; static const char *xmb_theme_ident(void) @@ -305,17 +327,23 @@ static float *xmb_gradient_ident(void) switch (settings->menu.xmb_gradient) { case 1: - return &gradient_volcano[0]; + return &gradient_dark_purple[0]; case 2: return &gradient_midnight_blue[0]; case 3: - return &gradient_wisteria[0]; + return &gradient_golden[0]; + case 4: + return &gradient_electric_blue[0]; + case 5: + return &gradient_apple_green[0]; + case 6: + return &gradient_undersea[0]; case 0: default: break; } - return &gradient_pomegranate[0]; + return &gradient_legacy_red[0]; } static void xmb_fill_default_background_path(xmb_handle_t *xmb, diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 8c2d1b07f3..7e6c74ea75 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -5914,7 +5914,7 @@ static bool setting_append_list( parent_group, general_write_handler, general_read_handler); - menu_settings_list_current_add_range(list, list_info, 0, 3, 1, true, true); + menu_settings_list_current_add_range(list, list_info, 0, 6, 1, true, true); } CONFIG_BOOL(