Add common Thumbnail Background option for all menu drivers
This commit is contained in:
parent
2a225a20dc
commit
e3583cbcbb
|
@ -156,6 +156,7 @@
|
||||||
* > Helps to unify menu appearance when viewing
|
* > Helps to unify menu appearance when viewing
|
||||||
* thumbnails of different sizes */
|
* thumbnails of different sizes */
|
||||||
#define DEFAULT_MATERIALUI_THUMBNAIL_BACKGROUND_ENABLE true
|
#define DEFAULT_MATERIALUI_THUMBNAIL_BACKGROUND_ENABLE true
|
||||||
|
#define DEFAULT_MENU_THUMBNAIL_BACKGROUND_ENABLE false
|
||||||
|
|
||||||
#define DEFAULT_SCREEN_BRIGHTNESS 100
|
#define DEFAULT_SCREEN_BRIGHTNESS 100
|
||||||
|
|
||||||
|
|
|
@ -2072,6 +2072,7 @@ static struct config_bool_setting *populate_settings_bool(
|
||||||
SETTING_BOOL("menu_navigation_wraparound_enable", &settings->bools.menu_navigation_wraparound_enable, true, true, false);
|
SETTING_BOOL("menu_navigation_wraparound_enable", &settings->bools.menu_navigation_wraparound_enable, true, true, false);
|
||||||
SETTING_BOOL("menu_navigation_browser_filter_supported_extensions_enable", &settings->bools.menu_navigation_browser_filter_supported_extensions_enable, true, true, false);
|
SETTING_BOOL("menu_navigation_browser_filter_supported_extensions_enable", &settings->bools.menu_navigation_browser_filter_supported_extensions_enable, true, true, false);
|
||||||
SETTING_BOOL("menu_show_advanced_settings", &settings->bools.menu_show_advanced_settings, true, DEFAULT_SHOW_ADVANCED_SETTINGS, false);
|
SETTING_BOOL("menu_show_advanced_settings", &settings->bools.menu_show_advanced_settings, true, DEFAULT_SHOW_ADVANCED_SETTINGS, false);
|
||||||
|
SETTING_BOOL("menu_thumbnail_background_enable", &settings->bools.menu_thumbnail_background_enable, true, DEFAULT_MENU_THUMBNAIL_BACKGROUND_ENABLE, false);
|
||||||
#ifdef HAVE_MATERIALUI
|
#ifdef HAVE_MATERIALUI
|
||||||
SETTING_BOOL("materialui_icons_enable", &settings->bools.menu_materialui_icons_enable, true, DEFAULT_MATERIALUI_ICONS_ENABLE, false);
|
SETTING_BOOL("materialui_icons_enable", &settings->bools.menu_materialui_icons_enable, true, DEFAULT_MATERIALUI_ICONS_ENABLE, false);
|
||||||
SETTING_BOOL("materialui_switch_icons", &settings->bools.menu_materialui_switch_icons, true, DEFAULT_MATERIALUI_SWITCH_ICONS, false);
|
SETTING_BOOL("materialui_switch_icons", &settings->bools.menu_materialui_switch_icons, true, DEFAULT_MATERIALUI_SWITCH_ICONS, false);
|
||||||
|
|
|
@ -803,6 +803,7 @@ typedef struct settings
|
||||||
bool menu_materialui_auto_rotate_nav_bar;
|
bool menu_materialui_auto_rotate_nav_bar;
|
||||||
bool menu_materialui_dual_thumbnail_list_view_enable;
|
bool menu_materialui_dual_thumbnail_list_view_enable;
|
||||||
bool menu_materialui_thumbnail_background_enable;
|
bool menu_materialui_thumbnail_background_enable;
|
||||||
|
bool menu_thumbnail_background_enable;
|
||||||
bool menu_rgui_background_filler_thickness_enable;
|
bool menu_rgui_background_filler_thickness_enable;
|
||||||
bool menu_rgui_border_filler_thickness_enable;
|
bool menu_rgui_border_filler_thickness_enable;
|
||||||
bool menu_rgui_border_filler_enable;
|
bool menu_rgui_border_filler_enable;
|
||||||
|
|
|
@ -5222,6 +5222,10 @@ MSG_HASH(
|
||||||
MENU_ENUM_LABEL_MATERIALUI_THUMBNAIL_BACKGROUND_ENABLE,
|
MENU_ENUM_LABEL_MATERIALUI_THUMBNAIL_BACKGROUND_ENABLE,
|
||||||
"materialui_thumbnail_background_enable"
|
"materialui_thumbnail_background_enable"
|
||||||
)
|
)
|
||||||
|
MSG_HASH(
|
||||||
|
MENU_ENUM_LABEL_MENU_THUMBNAIL_BACKGROUND_ENABLE,
|
||||||
|
"menu_thumbnail_background_enable"
|
||||||
|
)
|
||||||
MSG_HASH(
|
MSG_HASH(
|
||||||
MENU_ENUM_LABEL_RENAME_ENTRY,
|
MENU_ENUM_LABEL_RENAME_ENTRY,
|
||||||
"rename_entry"
|
"rename_entry"
|
||||||
|
|
|
@ -7198,6 +7198,14 @@ MSG_HASH(
|
||||||
MENU_ENUM_SUBLABEL_MENU_THUMBNAIL_UPSCALE_THRESHOLD,
|
MENU_ENUM_SUBLABEL_MENU_THUMBNAIL_UPSCALE_THRESHOLD,
|
||||||
"Automatically upscale thumbnail images with a width/height smaller than the specified value. Improves picture quality. Has a moderate performance impact."
|
"Automatically upscale thumbnail images with a width/height smaller than the specified value. Improves picture quality. Has a moderate performance impact."
|
||||||
)
|
)
|
||||||
|
MSG_HASH(
|
||||||
|
MENU_ENUM_LABEL_VALUE_MENU_THUMBNAIL_BACKGROUND_ENABLE,
|
||||||
|
"Thumbnail Backgrounds"
|
||||||
|
)
|
||||||
|
MSG_HASH(
|
||||||
|
MENU_ENUM_SUBLABEL_MENU_THUMBNAIL_BACKGROUND_ENABLE,
|
||||||
|
"Enables padding of unused space in thumbnail images with a solid background. This ensures a uniform display size for all images, improving menu appearance when viewing mixed content thumbnails with varying base dimensions."
|
||||||
|
)
|
||||||
MSG_HASH(
|
MSG_HASH(
|
||||||
MENU_ENUM_LABEL_VALUE_MENU_TICKER_TYPE,
|
MENU_ENUM_LABEL_VALUE_MENU_TICKER_TYPE,
|
||||||
"Ticker Text Animation"
|
"Ticker Text Animation"
|
||||||
|
@ -12610,7 +12618,7 @@ MSG_HASH(
|
||||||
)
|
)
|
||||||
MSG_HASH(
|
MSG_HASH(
|
||||||
MENU_ENUM_LABEL_VALUE_MATERIALUI_THUMBNAIL_BACKGROUND_ENABLE,
|
MENU_ENUM_LABEL_VALUE_MATERIALUI_THUMBNAIL_BACKGROUND_ENABLE,
|
||||||
"Draw Thumbnail Backgrounds"
|
"Thumbnail Backgrounds"
|
||||||
)
|
)
|
||||||
MSG_HASH(
|
MSG_HASH(
|
||||||
MENU_ENUM_SUBLABEL_MATERIALUI_THUMBNAIL_BACKGROUND_ENABLE,
|
MENU_ENUM_SUBLABEL_MATERIALUI_THUMBNAIL_BACKGROUND_ENABLE,
|
||||||
|
|
|
@ -950,6 +950,7 @@ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_ozone_truncate_playlist_name,
|
||||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_ozone_sort_after_truncate_playlist_name, MENU_ENUM_SUBLABEL_OZONE_SORT_AFTER_TRUNCATE_PLAYLIST_NAME)
|
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_ozone_sort_after_truncate_playlist_name, MENU_ENUM_SUBLABEL_OZONE_SORT_AFTER_TRUNCATE_PLAYLIST_NAME)
|
||||||
#endif
|
#endif
|
||||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_thumbnail_upscale_threshold, MENU_ENUM_SUBLABEL_MENU_THUMBNAIL_UPSCALE_THRESHOLD)
|
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_thumbnail_upscale_threshold, MENU_ENUM_SUBLABEL_MENU_THUMBNAIL_UPSCALE_THRESHOLD)
|
||||||
|
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_thumbnail_background_enable, MENU_ENUM_SUBLABEL_MENU_THUMBNAIL_BACKGROUND_ENABLE)
|
||||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_timedate_enable, MENU_ENUM_SUBLABEL_TIMEDATE_ENABLE)
|
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_timedate_enable, MENU_ENUM_SUBLABEL_TIMEDATE_ENABLE)
|
||||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_timedate_style, MENU_ENUM_SUBLABEL_TIMEDATE_STYLE)
|
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_timedate_style, MENU_ENUM_SUBLABEL_TIMEDATE_STYLE)
|
||||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_timedate_date_separator, MENU_ENUM_SUBLABEL_TIMEDATE_DATE_SEPARATOR)
|
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_timedate_date_separator, MENU_ENUM_SUBLABEL_TIMEDATE_DATE_SEPARATOR)
|
||||||
|
@ -2577,6 +2578,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
|
||||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_materialui_thumbnail_background_enable);
|
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_materialui_thumbnail_background_enable);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
case MENU_ENUM_LABEL_MENU_THUMBNAIL_BACKGROUND_ENABLE:
|
||||||
|
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_thumbnail_background_enable);
|
||||||
|
break;
|
||||||
case MENU_ENUM_LABEL_SCREEN_RESOLUTION:
|
case MENU_ENUM_LABEL_SCREEN_RESOLUTION:
|
||||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_screen_resolution);
|
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_screen_resolution);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -6157,6 +6157,7 @@ static void ozone_draw_thumbnail_bar(
|
||||||
int bottom_row_y_position = 0;
|
int bottom_row_y_position = 0;
|
||||||
bool show_right_thumbnail = false;
|
bool show_right_thumbnail = false;
|
||||||
bool show_left_thumbnail = false;
|
bool show_left_thumbnail = false;
|
||||||
|
bool thumbnail_background = settings->bools.menu_thumbnail_background_enable;
|
||||||
unsigned sidebar_height = video_height
|
unsigned sidebar_height = video_height
|
||||||
- ozone->dimensions.header_height
|
- ozone->dimensions.header_height
|
||||||
- ozone->dimensions.sidebar_gradient_height * 2
|
- ozone->dimensions.sidebar_gradient_height * 2
|
||||||
|
@ -6264,6 +6265,7 @@ static void ozone_draw_thumbnail_bar(
|
||||||
+ (int)(1.5f * (float)ozone->dimensions.sidebar_entry_icon_padding);
|
+ (int)(1.5f * (float)ozone->dimensions.sidebar_entry_icon_padding);
|
||||||
|
|
||||||
right_thumbnail_alignment = GFX_THUMBNAIL_ALIGN_CENTRE;
|
right_thumbnail_alignment = GFX_THUMBNAIL_ALIGN_CENTRE;
|
||||||
|
show_left_thumbnail = false;
|
||||||
|
|
||||||
if (thumbnail_height > thumbnail_width)
|
if (thumbnail_height > thumbnail_width)
|
||||||
{
|
{
|
||||||
|
@ -6326,6 +6328,32 @@ static void ozone_draw_thumbnail_bar(
|
||||||
/* > If we have a right thumbnail, show it */
|
/* > If we have a right thumbnail, show it */
|
||||||
if (show_right_thumbnail)
|
if (show_right_thumbnail)
|
||||||
{
|
{
|
||||||
|
if (thumbnail_background)
|
||||||
|
{
|
||||||
|
float background_color[16] = {
|
||||||
|
0.0f, 0.0f, 0.0f, 1.0f,
|
||||||
|
0.0f, 0.0f, 0.0f, 1.0f,
|
||||||
|
0.0f, 0.0f, 0.0f, 1.0f,
|
||||||
|
0.0f, 0.0f, 0.0f, 1.0f,
|
||||||
|
};
|
||||||
|
|
||||||
|
right_thumbnail_alignment = GFX_THUMBNAIL_ALIGN_CENTRE;
|
||||||
|
|
||||||
|
gfx_display_draw_quad(
|
||||||
|
p_disp,
|
||||||
|
userdata,
|
||||||
|
video_width,
|
||||||
|
video_height,
|
||||||
|
thumbnail_x_position,
|
||||||
|
right_thumbnail_y_position,
|
||||||
|
thumbnail_width,
|
||||||
|
thumbnail_height,
|
||||||
|
video_width,
|
||||||
|
video_height,
|
||||||
|
background_color,
|
||||||
|
NULL);
|
||||||
|
}
|
||||||
|
|
||||||
gfx_thumbnail_draw(
|
gfx_thumbnail_draw(
|
||||||
userdata,
|
userdata,
|
||||||
video_width,
|
video_width,
|
||||||
|
@ -6410,6 +6438,32 @@ static void ozone_draw_thumbnail_bar(
|
||||||
left_thumbnail_alpha = 1.0f;
|
left_thumbnail_alpha = 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (thumbnail_background)
|
||||||
|
{
|
||||||
|
float background_color[16] = {
|
||||||
|
0.0f, 0.0f, 0.0f, 1.0f,
|
||||||
|
0.0f, 0.0f, 0.0f, 1.0f,
|
||||||
|
0.0f, 0.0f, 0.0f, 1.0f,
|
||||||
|
0.0f, 0.0f, 0.0f, 1.0f,
|
||||||
|
};
|
||||||
|
|
||||||
|
left_thumbnail_alignment = GFX_THUMBNAIL_ALIGN_CENTRE;
|
||||||
|
|
||||||
|
gfx_display_draw_quad(
|
||||||
|
p_disp,
|
||||||
|
userdata,
|
||||||
|
video_width,
|
||||||
|
video_height,
|
||||||
|
thumbnail_x_position,
|
||||||
|
left_thumbnail_y_position,
|
||||||
|
thumbnail_width,
|
||||||
|
thumbnail_height,
|
||||||
|
video_width,
|
||||||
|
video_height,
|
||||||
|
background_color,
|
||||||
|
NULL);
|
||||||
|
}
|
||||||
|
|
||||||
/* Note: This is a NOOP when alpha is zero
|
/* Note: This is a NOOP when alpha is zero
|
||||||
* (i.e. no performance impact when content
|
* (i.e. no performance impact when content
|
||||||
* metadata override is fully active) */
|
* metadata override is fully active) */
|
||||||
|
|
|
@ -2827,7 +2827,8 @@ static void rgui_render_mini_thumbnail(
|
||||||
unsigned fb_width,
|
unsigned fb_width,
|
||||||
unsigned fb_height,
|
unsigned fb_height,
|
||||||
size_t fb_pitch,
|
size_t fb_pitch,
|
||||||
bool menu_rgui_swap_thumbnails)
|
bool swap_thumbnails,
|
||||||
|
bool thumbnail_background)
|
||||||
{
|
{
|
||||||
if (thumbnail->is_valid && frame_buf_data && thumbnail->data)
|
if (thumbnail->is_valid && frame_buf_data && thumbnail->data)
|
||||||
{
|
{
|
||||||
|
@ -2848,23 +2849,24 @@ static void rgui_render_mini_thumbnail(
|
||||||
fb_x_offset = (rgui->term_layout.start_x + term_width) -
|
fb_x_offset = (rgui->term_layout.start_x + term_width) -
|
||||||
(thumbnail->width + ((thumbnail_fullwidth - thumbnail->width) >> 1));
|
(thumbnail->width + ((thumbnail_fullwidth - thumbnail->width) >> 1));
|
||||||
|
|
||||||
if ( ((thumbnail_id == GFX_THUMBNAIL_RIGHT) && !menu_rgui_swap_thumbnails)
|
if ( ((thumbnail_id == GFX_THUMBNAIL_RIGHT) && !swap_thumbnails)
|
||||||
|| ((thumbnail_id == GFX_THUMBNAIL_LEFT) && menu_rgui_swap_thumbnails))
|
|| ((thumbnail_id == GFX_THUMBNAIL_LEFT) && swap_thumbnails))
|
||||||
fb_y_offset = rgui->term_layout.start_y + ((thumbnail->max_height - thumbnail->height) >> 1);
|
fb_y_offset = rgui->term_layout.start_y + ((thumbnail->max_height - thumbnail->height) >> 1);
|
||||||
else
|
else
|
||||||
fb_y_offset = (rgui->term_layout.start_y + term_height) -
|
fb_y_offset = (rgui->term_layout.start_y + term_height) -
|
||||||
(thumbnail->height + ((thumbnail->max_height - thumbnail->height) >> 1));
|
(thumbnail->height + ((thumbnail->max_height - thumbnail->height) >> 1));
|
||||||
|
|
||||||
/* Draw background */
|
/* Draw background */
|
||||||
rgui_fill_rect(frame_buf_data, fb_width, fb_height,
|
if (thumbnail_background)
|
||||||
rgui->term_layout.start_x + term_width - thumbnail_fullwidth,
|
rgui_fill_rect(frame_buf_data, fb_width, fb_height,
|
||||||
( ((thumbnail_id == GFX_THUMBNAIL_RIGHT) && !menu_rgui_swap_thumbnails)
|
rgui->term_layout.start_x + term_width - thumbnail_fullwidth,
|
||||||
|| ((thumbnail_id == GFX_THUMBNAIL_LEFT) && menu_rgui_swap_thumbnails))
|
( ((thumbnail_id == GFX_THUMBNAIL_RIGHT) && !swap_thumbnails)
|
||||||
? fb_y_offset : fb_y_offset - ((thumbnail->max_height - thumbnail->height) >> 1),
|
|| ((thumbnail_id == GFX_THUMBNAIL_LEFT) && swap_thumbnails))
|
||||||
thumbnail_fullwidth, thumbnail->max_height,
|
? fb_y_offset : fb_y_offset - ((thumbnail->max_height - thumbnail->height) >> 1),
|
||||||
rgui->colors.shadow_color,
|
thumbnail_fullwidth, thumbnail->max_height,
|
||||||
rgui->colors.shadow_color,
|
rgui->colors.shadow_color,
|
||||||
false);
|
rgui->colors.shadow_color,
|
||||||
|
false);
|
||||||
|
|
||||||
/* Copy thumbnail to framebuffer */
|
/* Copy thumbnail to framebuffer */
|
||||||
for (y = 0; y < thumbnail->height; y++)
|
for (y = 0; y < thumbnail->height; y++)
|
||||||
|
@ -5018,6 +5020,7 @@ static void rgui_render(void *data, unsigned width, unsigned height,
|
||||||
bool rgui_inline_thumbnails = settings->bools.menu_rgui_inline_thumbnails || (rgui->flags & RGUI_FLAG_IS_QUICK_MENU);
|
bool rgui_inline_thumbnails = settings->bools.menu_rgui_inline_thumbnails || (rgui->flags & RGUI_FLAG_IS_QUICK_MENU);
|
||||||
bool menu_battery_level_enable = settings->bools.menu_battery_level_enable;
|
bool menu_battery_level_enable = settings->bools.menu_battery_level_enable;
|
||||||
bool use_smooth_ticker = settings->bools.menu_ticker_smooth;
|
bool use_smooth_ticker = settings->bools.menu_ticker_smooth;
|
||||||
|
bool thumbnail_background = settings->bools.menu_thumbnail_background_enable;
|
||||||
bool rgui_swap_thumbnails = settings->bools.menu_rgui_swap_thumbnails;
|
bool rgui_swap_thumbnails = settings->bools.menu_rgui_swap_thumbnails;
|
||||||
bool rgui_full_width_layout = settings->bools.menu_rgui_full_width_layout;
|
bool rgui_full_width_layout = settings->bools.menu_rgui_full_width_layout;
|
||||||
bool rgui_switch_icons = settings->bools.menu_rgui_switch_icons;
|
bool rgui_switch_icons = settings->bools.menu_rgui_switch_icons;
|
||||||
|
@ -5717,7 +5720,7 @@ static void rgui_render(void *data, unsigned width, unsigned height,
|
||||||
rgui->frame_buf.data,
|
rgui->frame_buf.data,
|
||||||
(rgui_swap_thumbnails) ? GFX_THUMBNAIL_RIGHT : GFX_THUMBNAIL_LEFT,
|
(rgui_swap_thumbnails) ? GFX_THUMBNAIL_RIGHT : GFX_THUMBNAIL_LEFT,
|
||||||
fb_width, fb_height, fb_pitch,
|
fb_width, fb_height, fb_pitch,
|
||||||
rgui_swap_thumbnails);
|
rgui_swap_thumbnails, thumbnail_background);
|
||||||
}
|
}
|
||||||
else if (show_mini_thumbnails)
|
else if (show_mini_thumbnails)
|
||||||
{
|
{
|
||||||
|
@ -5728,13 +5731,13 @@ static void rgui_render(void *data, unsigned width, unsigned height,
|
||||||
rgui->frame_buf.data,
|
rgui->frame_buf.data,
|
||||||
GFX_THUMBNAIL_RIGHT,
|
GFX_THUMBNAIL_RIGHT,
|
||||||
fb_width, fb_height, fb_pitch,
|
fb_width, fb_height, fb_pitch,
|
||||||
rgui_swap_thumbnails);
|
rgui_swap_thumbnails, thumbnail_background);
|
||||||
if (show_left_thumbnail && thumbnail2)
|
if (show_left_thumbnail && thumbnail2)
|
||||||
rgui_render_mini_thumbnail(rgui, thumbnail2,
|
rgui_render_mini_thumbnail(rgui, thumbnail2,
|
||||||
rgui->frame_buf.data,
|
rgui->frame_buf.data,
|
||||||
GFX_THUMBNAIL_LEFT,
|
GFX_THUMBNAIL_LEFT,
|
||||||
fb_width, fb_height, fb_pitch,
|
fb_width, fb_height, fb_pitch,
|
||||||
rgui_swap_thumbnails);
|
rgui_swap_thumbnails, thumbnail_background);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Print menu sublabel/core name (if required) */
|
/* Print menu sublabel/core name (if required) */
|
||||||
|
|
|
@ -7967,13 +7967,19 @@ static void xmb_frame(void *data, video_frame_info_t *video_info)
|
||||||
}
|
}
|
||||||
else if (xmb->fullscreen_thumbnails_available && !xmb->show_fullscreen_thumbnails)
|
else if (xmb->fullscreen_thumbnails_available && !xmb->show_fullscreen_thumbnails)
|
||||||
{
|
{
|
||||||
|
float background_color[16] = {
|
||||||
|
0.0f, 0.0f, 0.0f, 1.0f,
|
||||||
|
0.0f, 0.0f, 0.0f, 1.0f,
|
||||||
|
0.0f, 0.0f, 0.0f, 1.0f,
|
||||||
|
0.0f, 0.0f, 0.0f, 1.0f,
|
||||||
|
};
|
||||||
|
bool thumbnail_background = settings->bools.menu_thumbnail_background_enable;
|
||||||
bool show_right_thumbnail =
|
bool show_right_thumbnail =
|
||||||
(gfx_thumbnail_is_enabled(menu_st->thumbnail_path_data, GFX_THUMBNAIL_RIGHT))
|
(gfx_thumbnail_is_enabled(menu_st->thumbnail_path_data, GFX_THUMBNAIL_RIGHT))
|
||||||
&& ( (xmb->thumbnails.right.status == GFX_THUMBNAIL_STATUS_AVAILABLE)
|
&& ( (xmb->thumbnails.right.status == GFX_THUMBNAIL_STATUS_AVAILABLE)
|
||||||
|| ( xmb->thumbnails.right.status < GFX_THUMBNAIL_STATUS_AVAILABLE
|
|| ( xmb->thumbnails.right.status < GFX_THUMBNAIL_STATUS_AVAILABLE
|
||||||
&& xmb->thumbnails_right_status_prev <= GFX_THUMBNAIL_STATUS_AVAILABLE
|
&& xmb->thumbnails_right_status_prev <= GFX_THUMBNAIL_STATUS_AVAILABLE
|
||||||
&& xmb->thumbnails_right_status_prev != GFX_THUMBNAIL_STATUS_UNKNOWN));
|
&& xmb->thumbnails_right_status_prev != GFX_THUMBNAIL_STATUS_UNKNOWN));
|
||||||
|
|
||||||
bool show_left_thumbnail =
|
bool show_left_thumbnail =
|
||||||
(gfx_thumbnail_is_enabled(menu_st->thumbnail_path_data, GFX_THUMBNAIL_LEFT))
|
(gfx_thumbnail_is_enabled(menu_st->thumbnail_path_data, GFX_THUMBNAIL_LEFT))
|
||||||
&& ( (xmb->thumbnails.left.status == GFX_THUMBNAIL_STATUS_AVAILABLE)
|
&& ( (xmb->thumbnails.left.status == GFX_THUMBNAIL_STATUS_AVAILABLE)
|
||||||
|
@ -8005,41 +8011,37 @@ static void xmb_frame(void *data, video_frame_info_t *video_info)
|
||||||
float right_thumb_y = thumb_y_base + thumb_y_offset;
|
float right_thumb_y = thumb_y_base + thumb_y_offset;
|
||||||
float left_thumb_y = thumb_y_base + thumb_height + (xmb->icon_size / 8) + thumb_y_offset;
|
float left_thumb_y = thumb_y_base + thumb_height + (xmb->icon_size / 8) + thumb_y_offset;
|
||||||
|
|
||||||
float background_color[16] = {
|
|
||||||
0.0f, 0.0f, 0.0f, 1.0f,
|
|
||||||
0.0f, 0.0f, 0.0f, 1.0f,
|
|
||||||
0.0f, 0.0f, 0.0f, 1.0f,
|
|
||||||
0.0f, 0.0f, 0.0f, 1.0f,
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Darken background */
|
/* Darken background */
|
||||||
gfx_display_draw_quad(
|
if (thumbnail_background)
|
||||||
p_disp,
|
{
|
||||||
userdata,
|
gfx_display_draw_quad(
|
||||||
video_width,
|
p_disp,
|
||||||
video_height,
|
userdata,
|
||||||
thumb_x,
|
video_width,
|
||||||
right_thumb_y,
|
video_height,
|
||||||
scaled_thumb_width,
|
thumb_x,
|
||||||
scaled_thumb_height,
|
right_thumb_y,
|
||||||
video_width,
|
scaled_thumb_width,
|
||||||
video_height,
|
scaled_thumb_height,
|
||||||
background_color,
|
video_width,
|
||||||
NULL);
|
video_height,
|
||||||
|
background_color,
|
||||||
|
NULL);
|
||||||
|
|
||||||
gfx_display_draw_quad(
|
gfx_display_draw_quad(
|
||||||
p_disp,
|
p_disp,
|
||||||
userdata,
|
userdata,
|
||||||
video_width,
|
video_width,
|
||||||
video_height,
|
video_height,
|
||||||
thumb_x,
|
thumb_x,
|
||||||
left_thumb_y,
|
left_thumb_y,
|
||||||
scaled_thumb_width,
|
scaled_thumb_width,
|
||||||
scaled_thumb_height,
|
scaled_thumb_height,
|
||||||
video_width,
|
video_width,
|
||||||
video_height,
|
video_height,
|
||||||
background_color,
|
background_color,
|
||||||
NULL);
|
NULL);
|
||||||
|
}
|
||||||
|
|
||||||
gfx_thumbnail_draw(
|
gfx_thumbnail_draw(
|
||||||
userdata,
|
userdata,
|
||||||
|
@ -8076,17 +8078,31 @@ static void xmb_frame(void *data, video_frame_info_t *video_info)
|
||||||
+ ((thumb_width - scaled_thumb_width) / 2.0f);
|
+ ((thumb_width - scaled_thumb_width) / 2.0f);
|
||||||
float thumb_y = xmb->margins_screen_top + (xmb->icon_size / 1.5f);
|
float thumb_y = xmb->margins_screen_top + (xmb->icon_size / 1.5f);
|
||||||
|
|
||||||
|
if (thumbnail_background)
|
||||||
|
gfx_display_draw_quad(
|
||||||
|
p_disp,
|
||||||
|
userdata,
|
||||||
|
video_width,
|
||||||
|
video_height,
|
||||||
|
thumb_x,
|
||||||
|
thumb_y,
|
||||||
|
scaled_thumb_width,
|
||||||
|
scaled_thumb_height,
|
||||||
|
video_width,
|
||||||
|
video_height,
|
||||||
|
background_color,
|
||||||
|
NULL);
|
||||||
|
|
||||||
gfx_thumbnail_draw(
|
gfx_thumbnail_draw(
|
||||||
userdata,
|
userdata,
|
||||||
video_width,
|
video_width,
|
||||||
video_height,
|
video_height,
|
||||||
show_right_thumbnail
|
(show_right_thumbnail) ? &xmb->thumbnails.right : &xmb->thumbnails.left,
|
||||||
? &xmb->thumbnails.right : &xmb->thumbnails.left,
|
|
||||||
thumb_x,
|
thumb_x,
|
||||||
thumb_y,
|
thumb_y,
|
||||||
scaled_thumb_width > 0.0f ? (unsigned)scaled_thumb_width : 0,
|
(scaled_thumb_width > 0.0f) ? (unsigned)scaled_thumb_width : 0,
|
||||||
scaled_thumb_height > 0.0f ? (unsigned)scaled_thumb_height : 0,
|
(scaled_thumb_height > 0.0f) ? (unsigned)scaled_thumb_height : 0,
|
||||||
GFX_THUMBNAIL_ALIGN_TOP,
|
(thumbnail_background) ? GFX_THUMBNAIL_ALIGN_CENTRE : GFX_THUMBNAIL_ALIGN_TOP,
|
||||||
1.0f, 1.0f, &thumbnail_shadow);
|
1.0f, 1.0f, &thumbnail_shadow);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8103,6 +8119,21 @@ static void xmb_frame(void *data, video_frame_info_t *video_info)
|
||||||
+ ((thumb_width - scaled_thumb_width) / 2.0f);
|
+ ((thumb_width - scaled_thumb_width) / 2.0f);
|
||||||
float thumb_y = xmb->margins_screen_top + (xmb->icon_size / 1.5f);
|
float thumb_y = xmb->margins_screen_top + (xmb->icon_size / 1.5f);
|
||||||
|
|
||||||
|
if (thumbnail_background)
|
||||||
|
gfx_display_draw_quad(
|
||||||
|
p_disp,
|
||||||
|
userdata,
|
||||||
|
video_width,
|
||||||
|
video_height,
|
||||||
|
thumb_x,
|
||||||
|
thumb_y,
|
||||||
|
scaled_thumb_width,
|
||||||
|
scaled_thumb_height,
|
||||||
|
video_width,
|
||||||
|
video_height,
|
||||||
|
background_color,
|
||||||
|
NULL);
|
||||||
|
|
||||||
gfx_thumbnail_draw(
|
gfx_thumbnail_draw(
|
||||||
userdata,
|
userdata,
|
||||||
video_width,
|
video_width,
|
||||||
|
@ -8112,7 +8143,7 @@ static void xmb_frame(void *data, video_frame_info_t *video_info)
|
||||||
thumb_y,
|
thumb_y,
|
||||||
(scaled_thumb_width > 0.0f) ? (unsigned)scaled_thumb_width : 0,
|
(scaled_thumb_width > 0.0f) ? (unsigned)scaled_thumb_width : 0,
|
||||||
(scaled_thumb_height > 0.0f) ? (unsigned)scaled_thumb_height : 0,
|
(scaled_thumb_height > 0.0f) ? (unsigned)scaled_thumb_height : 0,
|
||||||
GFX_THUMBNAIL_ALIGN_TOP,
|
(thumbnail_background) ? GFX_THUMBNAIL_ALIGN_CENTRE : GFX_THUMBNAIL_ALIGN_TOP,
|
||||||
1.0f, 1.0f, &thumbnail_shadow);
|
1.0f, 1.0f, &thumbnail_shadow);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8129,6 +8160,21 @@ static void xmb_frame(void *data, video_frame_info_t *video_info)
|
||||||
+ ((thumb_width - scaled_thumb_width) / 2.0f);
|
+ ((thumb_width - scaled_thumb_width) / 2.0f);
|
||||||
float thumb_y = xmb->margins_screen_top + xmb->icon_size + y_offset;
|
float thumb_y = xmb->margins_screen_top + xmb->icon_size + y_offset;
|
||||||
|
|
||||||
|
if (thumbnail_background)
|
||||||
|
gfx_display_draw_quad(
|
||||||
|
p_disp,
|
||||||
|
userdata,
|
||||||
|
video_width,
|
||||||
|
video_height,
|
||||||
|
thumb_x,
|
||||||
|
thumb_y,
|
||||||
|
scaled_thumb_width,
|
||||||
|
scaled_thumb_height,
|
||||||
|
video_width,
|
||||||
|
video_height,
|
||||||
|
background_color,
|
||||||
|
NULL);
|
||||||
|
|
||||||
gfx_thumbnail_draw(
|
gfx_thumbnail_draw(
|
||||||
userdata,
|
userdata,
|
||||||
video_width,
|
video_width,
|
||||||
|
@ -8136,9 +8182,9 @@ static void xmb_frame(void *data, video_frame_info_t *video_info)
|
||||||
&xmb->thumbnails.left,
|
&xmb->thumbnails.left,
|
||||||
thumb_x,
|
thumb_x,
|
||||||
thumb_y,
|
thumb_y,
|
||||||
scaled_thumb_width > 0.0f ? (unsigned)scaled_thumb_width : 0,
|
(scaled_thumb_width > 0.0f) ? (unsigned)scaled_thumb_width : 0,
|
||||||
scaled_thumb_height > 0.0f ? (unsigned)scaled_thumb_height : 0,
|
(scaled_thumb_height > 0.0f) ? (unsigned)scaled_thumb_height : 0,
|
||||||
GFX_THUMBNAIL_ALIGN_TOP,
|
(thumbnail_background) ? GFX_THUMBNAIL_ALIGN_CENTRE : GFX_THUMBNAIL_ALIGN_TOP,
|
||||||
1.0f, 1.0f, &thumbnail_shadow);
|
1.0f, 1.0f, &thumbnail_shadow);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8162,17 +8208,34 @@ static void xmb_frame(void *data, video_frame_info_t *video_info)
|
||||||
/* Very small thumbnails look ridiculous
|
/* Very small thumbnails look ridiculous
|
||||||
* > Impose a minimum size limit */
|
* > Impose a minimum size limit */
|
||||||
if (thumb_height > xmb->icon_size)
|
if (thumb_height > xmb->icon_size)
|
||||||
|
{
|
||||||
|
if (thumbnail_background)
|
||||||
|
gfx_display_draw_quad(
|
||||||
|
p_disp,
|
||||||
|
userdata,
|
||||||
|
video_width,
|
||||||
|
video_height,
|
||||||
|
thumb_x,
|
||||||
|
thumb_y,
|
||||||
|
scaled_thumb_width,
|
||||||
|
scaled_thumb_height,
|
||||||
|
video_width,
|
||||||
|
video_height,
|
||||||
|
background_color,
|
||||||
|
NULL);
|
||||||
|
|
||||||
gfx_thumbnail_draw(
|
gfx_thumbnail_draw(
|
||||||
userdata,
|
userdata,
|
||||||
video_width,
|
video_width,
|
||||||
video_height,
|
video_height,
|
||||||
show_left_thumbnail ? &xmb->thumbnails.left : &xmb->thumbnails.right,
|
(show_left_thumbnail) ? &xmb->thumbnails.left : &xmb->thumbnails.right,
|
||||||
thumb_x,
|
thumb_x,
|
||||||
thumb_y,
|
thumb_y,
|
||||||
scaled_thumb_width > 0.0f ? (unsigned)scaled_thumb_width : 0,
|
(scaled_thumb_width > 0.0f) ? (unsigned)scaled_thumb_width : 0,
|
||||||
scaled_thumb_height > 0.0f ? (unsigned)scaled_thumb_height : 0,
|
(scaled_thumb_height > 0.0f) ? (unsigned)scaled_thumb_height : 0,
|
||||||
GFX_THUMBNAIL_ALIGN_TOP,
|
(thumbnail_background) ? GFX_THUMBNAIL_ALIGN_CENTRE : GFX_THUMBNAIL_ALIGN_TOP,
|
||||||
1.0f, 1.0f, &thumbnail_shadow);
|
1.0f, 1.0f, &thumbnail_shadow);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11641,6 +11641,7 @@ unsigned menu_displaylist_build_list(
|
||||||
{MENU_ENUM_LABEL_MENU_RGUI_SWAP_THUMBNAILS, PARSE_ONLY_BOOL, true},
|
{MENU_ENUM_LABEL_MENU_RGUI_SWAP_THUMBNAILS, PARSE_ONLY_BOOL, true},
|
||||||
{MENU_ENUM_LABEL_MENU_RGUI_THUMBNAIL_DOWNSCALER, PARSE_ONLY_UINT, true},
|
{MENU_ENUM_LABEL_MENU_RGUI_THUMBNAIL_DOWNSCALER, PARSE_ONLY_UINT, true},
|
||||||
{MENU_ENUM_LABEL_MENU_RGUI_THUMBNAIL_DELAY, PARSE_ONLY_UINT, true},
|
{MENU_ENUM_LABEL_MENU_RGUI_THUMBNAIL_DELAY, PARSE_ONLY_UINT, true},
|
||||||
|
{MENU_ENUM_LABEL_MENU_THUMBNAIL_BACKGROUND_ENABLE, PARSE_ONLY_BOOL, true},
|
||||||
{MENU_ENUM_LABEL_XMB_FONT, PARSE_ONLY_PATH, true},
|
{MENU_ENUM_LABEL_XMB_FONT, PARSE_ONLY_PATH, true},
|
||||||
{MENU_ENUM_LABEL_MENU_FONT_COLOR_RED, PARSE_ONLY_UINT, true},
|
{MENU_ENUM_LABEL_MENU_FONT_COLOR_RED, PARSE_ONLY_UINT, true},
|
||||||
{MENU_ENUM_LABEL_MENU_FONT_COLOR_GREEN, PARSE_ONLY_UINT, true},
|
{MENU_ENUM_LABEL_MENU_FONT_COLOR_GREEN, PARSE_ONLY_UINT, true},
|
||||||
|
|
|
@ -19670,41 +19670,6 @@ static bool setting_append_list(
|
||||||
general_write_handler,
|
general_write_handler,
|
||||||
general_read_handler,
|
general_read_handler,
|
||||||
SD_FLAG_NONE);
|
SD_FLAG_NONE);
|
||||||
|
|
||||||
/* TODO: These should be removed entirely, but just
|
|
||||||
* comment out for now in case users complain...
|
|
||||||
CONFIG_FLOAT(
|
|
||||||
list, list_info,
|
|
||||||
&settings->floats.menu_header_opacity,
|
|
||||||
MENU_ENUM_LABEL_MATERIALUI_MENU_HEADER_OPACITY,
|
|
||||||
MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_HEADER_OPACITY,
|
|
||||||
DEFAULT_MENU_HEADER_OPACITY,
|
|
||||||
"%.3f",
|
|
||||||
&group_info,
|
|
||||||
&subgroup_info,
|
|
||||||
parent_group,
|
|
||||||
general_write_handler,
|
|
||||||
general_read_handler);
|
|
||||||
(*list)[list_info->index - 1].action_ok = &setting_action_ok_uint;
|
|
||||||
menu_settings_list_current_add_range(list, list_info, 0.0, 1.0, 0.010, true, true);
|
|
||||||
|
|
||||||
CONFIG_FLOAT(
|
|
||||||
list, list_info,
|
|
||||||
&settings->floats.menu_footer_opacity,
|
|
||||||
MENU_ENUM_LABEL_MATERIALUI_MENU_FOOTER_OPACITY,
|
|
||||||
MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_FOOTER_OPACITY,
|
|
||||||
DEFAULT_MENU_FOOTER_OPACITY,
|
|
||||||
"%.3f",
|
|
||||||
&group_info,
|
|
||||||
&subgroup_info,
|
|
||||||
parent_group,
|
|
||||||
general_write_handler,
|
|
||||||
general_read_handler);
|
|
||||||
(*list)[list_info->index - 1].action_ok = &setting_action_ok_uint;
|
|
||||||
menu_settings_list_current_add_range(list, list_info, 0.0, 1.0, 0.010, true, true);
|
|
||||||
(*list)[list_info->index - 1].ui_type
|
|
||||||
= ST_UI_TYPE_FLOAT_SLIDER_AND_SPINBOX;
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -19823,6 +19788,26 @@ static bool setting_append_list(
|
||||||
SD_FLAG_NONE);
|
SD_FLAG_NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( string_is_equal(settings->arrays.menu_driver, "xmb")
|
||||||
|
|| string_is_equal(settings->arrays.menu_driver, "ozone")
|
||||||
|
|| string_is_equal(settings->arrays.menu_driver, "rgui"))
|
||||||
|
{
|
||||||
|
CONFIG_BOOL(
|
||||||
|
list, list_info,
|
||||||
|
&settings->bools.menu_thumbnail_background_enable,
|
||||||
|
MENU_ENUM_LABEL_MENU_THUMBNAIL_BACKGROUND_ENABLE,
|
||||||
|
MENU_ENUM_LABEL_VALUE_MENU_THUMBNAIL_BACKGROUND_ENABLE,
|
||||||
|
DEFAULT_MENU_THUMBNAIL_BACKGROUND_ENABLE,
|
||||||
|
MENU_ENUM_LABEL_VALUE_OFF,
|
||||||
|
MENU_ENUM_LABEL_VALUE_ON,
|
||||||
|
&group_info,
|
||||||
|
&subgroup_info,
|
||||||
|
parent_group,
|
||||||
|
general_write_handler,
|
||||||
|
general_read_handler,
|
||||||
|
SD_FLAG_NONE);
|
||||||
|
}
|
||||||
|
|
||||||
if ( string_is_equal(settings->arrays.menu_driver, "xmb")
|
if ( string_is_equal(settings->arrays.menu_driver, "xmb")
|
||||||
|| string_is_equal(settings->arrays.menu_driver, "ozone")
|
|| string_is_equal(settings->arrays.menu_driver, "ozone")
|
||||||
|| string_is_equal(settings->arrays.menu_driver, "rgui")
|
|| string_is_equal(settings->arrays.menu_driver, "rgui")
|
||||||
|
|
|
@ -781,8 +781,8 @@ enum msg_hash_enums
|
||||||
|
|
||||||
MENU_LABEL(VIDEO_SHADERS_ENABLE),
|
MENU_LABEL(VIDEO_SHADERS_ENABLE),
|
||||||
|
|
||||||
MENU_LABEL(MATERIALUI_MENU_HEADER_OPACITY),
|
MENU_LABEL(MATERIALUI_MENU_HEADER_OPACITY), /* Deprecated */
|
||||||
MENU_LABEL(MATERIALUI_MENU_FOOTER_OPACITY),
|
MENU_LABEL(MATERIALUI_MENU_FOOTER_OPACITY), /* Deprecated */
|
||||||
MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_BLUE,
|
MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_BLUE,
|
||||||
MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_BLUE_GREY,
|
MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_BLUE_GREY,
|
||||||
MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_RED,
|
MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_RED,
|
||||||
|
@ -1658,6 +1658,7 @@ enum msg_hash_enums
|
||||||
MENU_LABEL(MENU_XMB_TITLE_MARGIN),
|
MENU_LABEL(MENU_XMB_TITLE_MARGIN),
|
||||||
MENU_LABEL(MENU_XMB_TITLE_MARGIN_HORIZONTAL_OFFSET),
|
MENU_LABEL(MENU_XMB_TITLE_MARGIN_HORIZONTAL_OFFSET),
|
||||||
MENU_LABEL(MENU_THUMBNAIL_UPSCALE_THRESHOLD),
|
MENU_LABEL(MENU_THUMBNAIL_UPSCALE_THRESHOLD),
|
||||||
|
MENU_LABEL(MENU_THUMBNAIL_BACKGROUND_ENABLE),
|
||||||
MENU_LABEL(MENU_RGUI_INLINE_THUMBNAILS),
|
MENU_LABEL(MENU_RGUI_INLINE_THUMBNAILS),
|
||||||
MENU_LABEL(MENU_RGUI_SWAP_THUMBNAILS),
|
MENU_LABEL(MENU_RGUI_SWAP_THUMBNAILS),
|
||||||
MENU_LABEL(MENU_RGUI_THUMBNAIL_DOWNSCALER),
|
MENU_LABEL(MENU_RGUI_THUMBNAIL_DOWNSCALER),
|
||||||
|
|
Loading…
Reference in New Issue