diff --git a/config.def.h b/config.def.h index 30d7b16c6f..5fc9b49cc1 100644 --- a/config.def.h +++ b/config.def.h @@ -467,7 +467,6 @@ static bool content_show_add = true; static bool content_show_playlists = true; #ifdef HAVE_XMB -static unsigned xmb_scale_factor = 100; static unsigned xmb_alpha_factor = 75; static unsigned menu_font_color_red = 255; static unsigned menu_font_color_green = 255; @@ -889,15 +888,9 @@ static const bool playlist_fuzzy_archive_match = false; /* Show Menu start-up screen on boot. */ static const bool default_menu_show_start_screen = true; -#define DEFAULT_MENU_DPI_OVERRIDE_ENABLE false - -#ifdef RARCH_MOBILE -#define DEFAULT_MENU_DPI_OVERRIDE_VALUE 72 -#elif defined(__CELLOS_LV2__) -#define DEFAULT_MENU_DPI_OVERRIDE_VALUE 360 -#else -#define DEFAULT_MENU_DPI_OVERRIDE_VALUE 200 -#endif +/* Default scale factor for non-frambuffer-based menu + * drivers and menu widgets */ +#define DEFAULT_MENU_SCALE_FACTOR 1.0f /* Log level for the frontend */ #define DEFAULT_FRONTEND_LOG_LEVEL 1 diff --git a/configuration.c b/configuration.c index 0c8076df4f..e866030f81 100644 --- a/configuration.c +++ b/configuration.c @@ -1451,7 +1451,6 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings, SETTING_BOOL("menu_throttle_framerate", &settings->bools.menu_throttle_framerate, true, true, false); SETTING_BOOL("menu_linear_filter", &settings->bools.menu_linear_filter, true, true, false); SETTING_BOOL("menu_horizontal_animation", &settings->bools.menu_horizontal_animation, true, DEFAULT_MENU_HORIZONTAL_ANIMATION, false); - SETTING_BOOL("dpi_override_enable", &settings->bools.menu_dpi_override_enable, true, DEFAULT_MENU_DPI_OVERRIDE_ENABLE, false); SETTING_BOOL("menu_pause_libretro", &settings->bools.menu_pause_libretro, true, true, false); SETTING_BOOL("menu_savestate_resume", &settings->bools.menu_savestate_resume, true, menu_savestate_resume, false); SETTING_BOOL("menu_mouse_enable", &settings->bools.menu_mouse_enable, true, DEFAULT_MOUSE_ENABLE, false); @@ -1692,6 +1691,7 @@ static struct config_float_setting *populate_settings_float(settings_t *settings SETTING_FLOAT("input_overlay_scale", &settings->floats.input_overlay_scale, true, 1.0f, false); #endif #ifdef HAVE_MENU + SETTING_FLOAT("menu_scale_factor", &settings->floats.menu_scale_factor, true, DEFAULT_MENU_SCALE_FACTOR, false); SETTING_FLOAT("menu_wallpaper_opacity", &settings->floats.menu_wallpaper_opacity, true, menu_wallpaper_opacity, false); SETTING_FLOAT("menu_framebuffer_opacity", &settings->floats.menu_framebuffer_opacity, true, menu_framebuffer_opacity, false); SETTING_FLOAT("menu_footer_opacity", &settings->floats.menu_footer_opacity, true, menu_footer_opacity, false); @@ -1769,7 +1769,6 @@ static struct config_uint_setting *populate_settings_uint(settings_t *settings, SETTING_UINT("video_overscan_correction_bottom", &settings->uints.video_overscan_correction_bottom, true, DEFAULT_VIDEO_OVERSCAN_CORRECTION_BOTTOM, false); #endif #ifdef HAVE_MENU - SETTING_UINT("dpi_override_value", &settings->uints.menu_dpi_override_value, true, DEFAULT_MENU_DPI_OVERRIDE_VALUE, false); SETTING_UINT("menu_thumbnails", &settings->uints.menu_thumbnails, true, menu_thumbnails_default, false); SETTING_UINT("menu_left_thumbnails", &settings->uints.menu_left_thumbnails, true, menu_left_thumbnails_default, false); SETTING_UINT("menu_thumbnail_upscale_threshold", &settings->uints.menu_thumbnail_upscale_threshold, true, menu_thumbnail_upscale_threshold, false); @@ -1799,7 +1798,6 @@ static struct config_uint_setting *populate_settings_uint(settings_t *settings, SETTING_UINT("menu_xmb_animation_horizontal_highlight", &settings->uints.menu_xmb_animation_horizontal_highlight, true, 0 /* TODO/FIXME - implement */, false); SETTING_UINT("menu_xmb_animation_move_up_down", &settings->uints.menu_xmb_animation_move_up_down, true, 0 /* TODO/FIXME - implement */, false); SETTING_UINT("xmb_alpha_factor", &settings->uints.menu_xmb_alpha_factor, true, xmb_alpha_factor, false); - SETTING_UINT("xmb_scale_factor", &settings->uints.menu_xmb_scale_factor, true, xmb_scale_factor, false); SETTING_UINT("xmb_layout", &settings->uints.menu_xmb_layout, true, xmb_menu_layout, false); SETTING_UINT("xmb_theme", &settings->uints.menu_xmb_theme, true, xmb_icon_theme, false); SETTING_UINT("xmb_menu_color_theme", &settings->uints.menu_xmb_color_theme, true, xmb_theme, false); diff --git a/configuration.h b/configuration.h index 5be786318c..a525820682 100644 --- a/configuration.h +++ b/configuration.h @@ -161,7 +161,6 @@ typedef struct settings bool menu_pointer_enable; bool menu_navigation_wraparound_enable; bool menu_navigation_browser_filter_supported_extensions_enable; - bool menu_dpi_override_enable; bool menu_show_advanced_settings; bool menu_throttle_framerate; bool menu_linear_filter; @@ -394,6 +393,7 @@ typedef struct settings float video_msg_color_b; float video_msg_bgcolor_opacity; + float menu_scale_factor; float menu_wallpaper_opacity; float menu_framebuffer_opacity; float menu_footer_opacity; @@ -516,14 +516,12 @@ typedef struct settings unsigned menu_thumbnail_upscale_threshold; unsigned menu_rgui_thumbnail_downscaler; unsigned menu_rgui_thumbnail_delay; - unsigned menu_dpi_override_value; unsigned menu_rgui_color_theme; unsigned menu_xmb_animation_opening_main_menu; unsigned menu_xmb_animation_horizontal_highlight; unsigned menu_xmb_animation_move_up_down; unsigned menu_xmb_layout; unsigned menu_xmb_shader_pipeline; - unsigned menu_xmb_scale_factor; unsigned menu_xmb_alpha_factor; unsigned menu_xmb_theme; unsigned menu_xmb_color_theme; diff --git a/intl/msg_hash_ar.h b/intl/msg_hash_ar.h index 6addfb3381..50d8fbd468 100644 --- a/intl/msg_hash_ar.h +++ b/intl/msg_hash_ar.h @@ -647,10 +647,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE, "Download Core...") MSG_HASH(MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE_CONTENT, "Content Downloader") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_ENABLE, - "DPI Override Enable") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_VALUE, - "DPI Override") MSG_HASH(MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS, "أنظمة التشغيل") MSG_HASH(MENU_ENUM_LABEL_VALUE_DUMMY_ON_CORE_SHUTDOWN, @@ -1927,7 +1923,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_VOLCANIC_RED, "Volcanic Red") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_RIBBON_ENABLE, "Menu Shader Pipeline") -MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_SCALE_FACTOR, +MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_SCALE_FACTOR, "Menu Scale Factor") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_SHADOWS_ENABLE, "Icon Shadows Enable") @@ -3156,10 +3152,6 @@ MSG_HASH(MENU_ENUM_SUBLABEL_MATERIALUI_MENU_HEADER_OPACITY, "Modify the opacity of the header graphic.") MSG_HASH(MENU_ENUM_SUBLABEL_MATERIALUI_MENU_FOOTER_OPACITY, "Modify the opacity of the footer graphic.") -MSG_HASH(MENU_ENUM_SUBLABEL_DPI_OVERRIDE_ENABLE, - "The menu normally scales itself dynamically. If you want to set a specific scaling size instead, enable this.") -MSG_HASH(MENU_ENUM_SUBLABEL_DPI_OVERRIDE_VALUE, - "Set the custom scaling size here. NOTE: You have to enable 'DPI Override' for this scaling size to take effect.") MSG_HASH(MENU_ENUM_SUBLABEL_CORE_ASSETS_DIRECTORY, "Save all downloaded files to this directory.") MSG_HASH(MENU_ENUM_SUBLABEL_INPUT_REMAPPING_DIRECTORY, diff --git a/intl/msg_hash_chs.h b/intl/msg_hash_chs.h index d5682a5810..c90ab9b482 100644 --- a/intl/msg_hash_chs.h +++ b/intl/msg_hash_chs.h @@ -640,10 +640,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE, "下载核心……") MSG_HASH(MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE_CONTENT, "下载游戏内容") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_ENABLE, - "启用DPI覆盖") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_VALUE, - "DPI覆盖") MSG_HASH(MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS, "驱动") MSG_HASH(MENU_ENUM_LABEL_VALUE_DUMMY_ON_CORE_SHUTDOWN, @@ -1987,7 +1983,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_VOLCANIC_RED, "火山红") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_RIBBON_ENABLE, "菜单渲染器管线") -MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_SCALE_FACTOR, +MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_SCALE_FACTOR, "菜单缩放因子") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_SHADOWS_ENABLE, "启用图标阴影") @@ -3403,10 +3399,6 @@ MSG_HASH(MENU_ENUM_SUBLABEL_MATERIALUI_MENU_HEADER_OPACITY, "Modify the opacity of the header graphic.") MSG_HASH(MENU_ENUM_SUBLABEL_MATERIALUI_MENU_FOOTER_OPACITY, "Modify the opacity of the footer graphic.") -MSG_HASH(MENU_ENUM_SUBLABEL_DPI_OVERRIDE_ENABLE, - "The menu normally scales itself dynamically. If you want to set a specific scaling size instead, enable this.") -MSG_HASH(MENU_ENUM_SUBLABEL_DPI_OVERRIDE_VALUE, - "Set the custom scaling size here. NOTE: You have to enable 'DPI Override' for this scaling size to take effect.") MSG_HASH(MENU_ENUM_SUBLABEL_CORE_ASSETS_DIRECTORY, "保存下载文件的文件夹。") MSG_HASH(MENU_ENUM_SUBLABEL_INPUT_REMAPPING_DIRECTORY, diff --git a/intl/msg_hash_cht.h b/intl/msg_hash_cht.h index c594aa968e..5bf6234ab9 100644 --- a/intl/msg_hash_cht.h +++ b/intl/msg_hash_cht.h @@ -590,10 +590,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE, "下載核心……") MSG_HASH(MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE_CONTENT, "下載遊戲內容") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_ENABLE, - "啟用DPI覆蓋") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_VALUE, - "DPI覆蓋") MSG_HASH(MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS, "驅動") MSG_HASH(MENU_ENUM_LABEL_VALUE_DUMMY_ON_CORE_SHUTDOWN, @@ -1793,7 +1789,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_VOLCANIC_RED, "火山紅") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_RIBBON_ENABLE, "選單Shader管線") -MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_SCALE_FACTOR, +MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_SCALE_FACTOR, "選單縮放因子") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_SHADOWS_ENABLE, "啟用圖標陰影") @@ -2972,10 +2968,6 @@ MSG_HASH(MENU_ENUM_SUBLABEL_MATERIALUI_MENU_HEADER_OPACITY, "Modify the opacity of the header graphic.") MSG_HASH(MENU_ENUM_SUBLABEL_MATERIALUI_MENU_FOOTER_OPACITY, "Modify the opacity of the footer graphic.") -MSG_HASH(MENU_ENUM_SUBLABEL_DPI_OVERRIDE_ENABLE, - "The menu normally scales itself dynamically. If you want to set a specific scaling size instead, enable this.") -MSG_HASH(MENU_ENUM_SUBLABEL_DPI_OVERRIDE_VALUE, - "Set the custom scaling size here. NOTE: You have to enable 'DPI Override' for this scaling size to take effect.") MSG_HASH(MENU_ENUM_SUBLABEL_CORE_ASSETS_DIRECTORY, "Save all downloaded files to this directory.") MSG_HASH(MENU_ENUM_SUBLABEL_INPUT_REMAPPING_DIRECTORY, diff --git a/intl/msg_hash_de.h b/intl/msg_hash_de.h index 4b3faad056..64afbebcc9 100644 --- a/intl/msg_hash_de.h +++ b/intl/msg_hash_de.h @@ -623,10 +623,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE, "Core herunterladen...") MSG_HASH(MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE_CONTENT, "Inhalt herunterladen") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_ENABLE, - "Aktiviert DPI-Überschreibung") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_VALUE, - "DPI-Überschreibung") MSG_HASH(MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS, "Treiber") MSG_HASH(MENU_ENUM_LABEL_VALUE_DUMMY_ON_CORE_SHUTDOWN, @@ -1876,7 +1872,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_VOLCANIC_RED, "Volcanic Red") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_RIBBON_ENABLE, "Menü-Shader") -MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_SCALE_FACTOR, +MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_SCALE_FACTOR, "Menü-Skalierungsfaktor") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_SHADOWS_ENABLE, "Icon-Schatten aktivieren") @@ -3084,10 +3080,6 @@ MSG_HASH(MENU_ENUM_SUBLABEL_MATERIALUI_MENU_HEADER_OPACITY, "Ändere die Transparenz der Header-Grafik.") MSG_HASH(MENU_ENUM_SUBLABEL_MATERIALUI_MENU_FOOTER_OPACITY, "Ändere die Transparenz der Footer-Grafik.") -MSG_HASH(MENU_ENUM_SUBLABEL_DPI_OVERRIDE_ENABLE, - "Das Menü wird normalerweise automatisch skaliert. Wenn Du stattdessen eine bestimmte Skalierung wünschst, aktiviere diese Option.") -MSG_HASH(MENU_ENUM_SUBLABEL_DPI_OVERRIDE_VALUE, - "Lege hier die gewünschte Skalierung fest. HINWEIS: Du musst 'DPI-Überschreibung' aktivieren, damit diese Skalierung verwendet wird.") MSG_HASH(MENU_ENUM_SUBLABEL_CORE_ASSETS_DIRECTORY, "Speichere alle heruntergeladenen Dateien in diesem Verzeichnis.") MSG_HASH(MENU_ENUM_SUBLABEL_INPUT_REMAPPING_DIRECTORY, diff --git a/intl/msg_hash_el.h b/intl/msg_hash_el.h index 7a62fb3f83..700d20b6a3 100644 --- a/intl/msg_hash_el.h +++ b/intl/msg_hash_el.h @@ -770,14 +770,6 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE_CONTENT, "Λήψη Περιεχομένου" ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_ENABLE, - "DPI Override Enable" - ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_VALUE, - "DPI Override" - ) MSG_HASH( MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS, "Οδηγοί" @@ -3449,7 +3441,7 @@ MSG_HASH( "Menu Shader Pipeline" ) MSG_HASH( - MENU_ENUM_LABEL_VALUE_XMB_SCALE_FACTOR, + MENU_ENUM_LABEL_VALUE_MENU_SCALE_FACTOR, "Menu Scale Factor" ) MSG_HASH( @@ -5643,15 +5635,6 @@ MSG_HASH( MENU_ENUM_SUBLABEL_MATERIALUI_MENU_FOOTER_OPACITY, "Modify the opacity of the footer graphic." ) -MSG_HASH( - MENU_ENUM_SUBLABEL_DPI_OVERRIDE_ENABLE, - "The menu normally scales itself dynamically. If you want to set a specific scaling size instead, enable this." - ) -MSG_HASH( - MENU_ENUM_SUBLABEL_DPI_OVERRIDE_VALUE, - "Set the custom scaling size here.\n" - "NOTE: You have to enable 'DPI Override' for this scaling size to take effect." - ) MSG_HASH( MENU_ENUM_SUBLABEL_CORE_ASSETS_DIRECTORY, "Save all downloaded files to this directory." diff --git a/intl/msg_hash_eo.h b/intl/msg_hash_eo.h index 0e1f80b4ff..0ee3719179 100644 --- a/intl/msg_hash_eo.h +++ b/intl/msg_hash_eo.h @@ -514,10 +514,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE, "Download Core...") MSG_HASH(MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE_CONTENT, "Content Downloader") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_ENABLE, - "DPI Override Enable") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_VALUE, - "DPI Override") MSG_HASH(MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS, "Driver") MSG_HASH(MENU_ENUM_LABEL_VALUE_DUMMY_ON_CORE_SHUTDOWN, @@ -1709,7 +1705,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_VOLCANIC_RED, "Volcanic Red") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_RIBBON_ENABLE, "Menu Shader Pipeline") -MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_SCALE_FACTOR, +MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_SCALE_FACTOR, "Menu Scale Factor") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_SHADOWS_ENABLE, "Icon Shadows Enable") @@ -2860,10 +2856,6 @@ MSG_HASH(MENU_ENUM_SUBLABEL_MATERIALUI_MENU_HEADER_OPACITY, "Modify the opacity of the header graphic.") MSG_HASH(MENU_ENUM_SUBLABEL_MATERIALUI_MENU_FOOTER_OPACITY, "Modify the opacity of the footer graphic.") -MSG_HASH(MENU_ENUM_SUBLABEL_DPI_OVERRIDE_ENABLE, - "The menu normally scales itself dynamically. If you want to set a specific scaling size instead, enable this.") -MSG_HASH(MENU_ENUM_SUBLABEL_DPI_OVERRIDE_VALUE, - "Set the custom scaling size here. NOTE: You have to enable 'DPI Override' for this scaling size to take effect.") MSG_HASH(MENU_ENUM_SUBLABEL_CORE_ASSETS_DIRECTORY, "Save all downloaded files to this directory.") MSG_HASH(MENU_ENUM_SUBLABEL_INPUT_REMAPPING_DIRECTORY, diff --git a/intl/msg_hash_es.h b/intl/msg_hash_es.h index 318ed026f2..adfdbb1cdd 100644 --- a/intl/msg_hash_es.h +++ b/intl/msg_hash_es.h @@ -809,14 +809,6 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE_CONTENT, "Descargador de contenido" ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_ENABLE, - "Forzar DPI" - ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_VALUE, - "Anular DPI" - ) MSG_HASH( MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS, "Controladores" @@ -3521,7 +3513,7 @@ MSG_HASH( "Menú Shader Pipeline" ) MSG_HASH( - MENU_ENUM_LABEL_VALUE_XMB_SCALE_FACTOR, + MENU_ENUM_LABEL_VALUE_MENU_SCALE_FACTOR, "Escala del menú" ) MSG_HASH( @@ -5756,15 +5748,6 @@ MSG_HASH( MENU_ENUM_SUBLABEL_MATERIALUI_MENU_FOOTER_OPACITY, "Modificar opacidad del pie de página" ) -MSG_HASH( - MENU_ENUM_SUBLABEL_DPI_OVERRIDE_ENABLE, - "El menú es escalado dinamicamente. Activar si desea un valor predefinido" - ) -MSG_HASH( - MENU_ENUM_SUBLABEL_DPI_OVERRIDE_VALUE, - "Establecer DPI\n" - "NOTA: Debe activar 'Forzar DPI' para que tenga efecto" - ) MSG_HASH( MENU_ENUM_SUBLABEL_CORE_ASSETS_DIRECTORY, "Guardar archivos descargados en esta carpeta" diff --git a/intl/msg_hash_fr.h b/intl/msg_hash_fr.h index 6e37af4594..7f79fc0966 100644 --- a/intl/msg_hash_fr.h +++ b/intl/msg_hash_fr.h @@ -822,14 +822,6 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE_CONTENT, "Téléchargement de contenu" ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_ENABLE, - "Remplacer la valeur des pixels/pouce" - ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_VALUE, - "Valeur de remplacement des pixels/pouce" - ) MSG_HASH( MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS, "Pilotes" @@ -3930,7 +3922,7 @@ MSG_HASH( "Pipeline de shader du menu (fond animé) " ) MSG_HASH( - MENU_ENUM_LABEL_VALUE_XMB_SCALE_FACTOR, + MENU_ENUM_LABEL_VALUE_MENU_SCALE_FACTOR, "Facteur d'échelle du menu " ) MSG_HASH( @@ -6244,15 +6236,6 @@ MSG_HASH( MENU_ENUM_SUBLABEL_MATERIALUI_MENU_FOOTER_OPACITY, "Modifier l'opacité du graphique de pied de page." ) -MSG_HASH( - MENU_ENUM_SUBLABEL_DPI_OVERRIDE_ENABLE, - "Le menu est normalement redimensionné de manière dynamique. Si vous souhaitez définir une taille de mise à l'échelle spécifique, activez cette option." - ) -MSG_HASH( - MENU_ENUM_SUBLABEL_DPI_OVERRIDE_VALUE, - "Définir la taille de mise à l'échelle personnalisée ici.\n" - "REMARQUE : Vous devez activer 'Remplacer la valeur des pixels/pouce' pour que cette taille d'échelle prenne effet." - ) MSG_HASH( MENU_ENUM_SUBLABEL_CORE_ASSETS_DIRECTORY, "Tous les fichiers téléchargés seront conservés dans ce dossier." diff --git a/intl/msg_hash_it.h b/intl/msg_hash_it.h index 9461ddf8a3..98a77b457b 100644 --- a/intl/msg_hash_it.h +++ b/intl/msg_hash_it.h @@ -623,10 +623,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE, "Scarica Core") MSG_HASH(MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE_CONTENT, "Downloader dei contenuti") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_ENABLE, - "DPI Override Abilitato") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_VALUE, - "DPI Override") MSG_HASH(MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS, "Driver") MSG_HASH(MENU_ENUM_LABEL_VALUE_DUMMY_ON_CORE_SHUTDOWN, @@ -1876,7 +1872,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_VOLCANIC_RED, "Rosso vulcanico") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_RIBBON_ENABLE, "Menu Shader Pipeline") -MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_SCALE_FACTOR, +MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_SCALE_FACTOR, "Menu Scale Factor") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_SHADOWS_ENABLE, "Abilita Ombre delle Icone") @@ -3086,10 +3082,6 @@ MSG_HASH(MENU_ENUM_SUBLABEL_MATERIALUI_MENU_HEADER_OPACITY, "Modifica l'opacità dell'intestazione grafica.") MSG_HASH(MENU_ENUM_SUBLABEL_MATERIALUI_MENU_FOOTER_OPACITY, "Modifica l'opacità grafica a piè di pagina.") -MSG_HASH(MENU_ENUM_SUBLABEL_DPI_OVERRIDE_ENABLE, - "Il menu normalmente si scala dinamicamente. Se si desidera impostare una dimensione specifica, abilitare l'opzione.") -MSG_HASH(MENU_ENUM_SUBLABEL_DPI_OVERRIDE_VALUE, - "Impostare qui la dimensione della scala personalizzata. NOTA: è necessario abilitare l'opzione 'DPI Override' per scalare a questa dimensione.") MSG_HASH(MENU_ENUM_SUBLABEL_CORE_ASSETS_DIRECTORY, "Salva tutti i file scaricati in questa directory.") MSG_HASH(MENU_ENUM_SUBLABEL_INPUT_REMAPPING_DIRECTORY, diff --git a/intl/msg_hash_ja.h b/intl/msg_hash_ja.h index 72b88322c9..2e6db3afb0 100644 --- a/intl/msg_hash_ja.h +++ b/intl/msg_hash_ja.h @@ -850,14 +850,6 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE_CONTENT, "コンテンツをダウンロード" ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_ENABLE, - "DPI優先を有効" -) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_VALUE, - "DPI優先" -) MSG_HASH( MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS, "ドライバ" @@ -4177,7 +4169,7 @@ MSG_HASH( "メニューのシェーダパイプライン" ) MSG_HASH( - MENU_ENUM_LABEL_VALUE_XMB_SCALE_FACTOR, + MENU_ENUM_LABEL_VALUE_MENU_SCALE_FACTOR, "メニューの倍率" ) MSG_HASH( @@ -6572,16 +6564,6 @@ MSG_HASH( MENU_ENUM_SUBLABEL_MATERIALUI_MENU_FOOTER_OPACITY, "フッタの不透明度を調整します。" ) -MSG_HASH( - MENU_ENUM_SUBLABEL_DPI_OVERRIDE_ENABLE, - "通常, メニューは動的にスケールされます。 " - "特定のスケールサイズを指定したい場合に有効にしてください。" -) -MSG_HASH( - MENU_ENUM_SUBLABEL_DPI_OVERRIDE_VALUE, - "カスタムスケールサイズを指定します。 " - "備考: このスケールサイズを反映するには, [優先DPI]を有効にする必要があります。" -) MSG_HASH( MENU_ENUM_SUBLABEL_CORE_ASSETS_DIRECTORY, "すべてのダウンロードしたファイルをこのフォルダに保存します。" diff --git a/intl/msg_hash_ko.h b/intl/msg_hash_ko.h index 5b3fdeed67..d1e5edaa76 100644 --- a/intl/msg_hash_ko.h +++ b/intl/msg_hash_ko.h @@ -841,14 +841,6 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE_CONTENT, "컨텐츠 다운로더" ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_ENABLE, - "DPI 오버라이드 허용" - ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_VALUE, - "DPI 오버라이드" - ) MSG_HASH( MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS, "드라이버" @@ -4159,7 +4151,7 @@ MSG_HASH( "메뉴 쉐이더 파이프라인" ) MSG_HASH( - MENU_ENUM_LABEL_VALUE_XMB_SCALE_FACTOR, + MENU_ENUM_LABEL_VALUE_MENU_SCALE_FACTOR, "메뉴 크기 요소" ) MSG_HASH( @@ -6497,15 +6489,6 @@ MSG_HASH( MENU_ENUM_SUBLABEL_MATERIALUI_MENU_FOOTER_OPACITY, "푸터 그래픽의 투명도를 변경합니다." ) -MSG_HASH( - MENU_ENUM_SUBLABEL_DPI_OVERRIDE_ENABLE, - "메뉴는 일반적으로 동적으로 조정됩니다. 특정 크기를 설정하려면 이 옵션을 활성화하십시오." - ) -MSG_HASH( - MENU_ENUM_SUBLABEL_DPI_OVERRIDE_VALUE, - "사용자 정의 크기 조정을 설정합니다.\n" - "참고:크기조정을 적용하려면 'DPI 오버라이드'를 활성화해야합니다." - ) MSG_HASH( MENU_ENUM_SUBLABEL_CORE_ASSETS_DIRECTORY, "모든 다운로드 파일을 이 디렉토리에 저장합니다." diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index 0c59ba0b56..ef521b8f71 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -463,10 +463,8 @@ MSG_HASH(MENU_ENUM_LABEL_DOWNLOAD_CORE_CONTENT_DIRS, "download_core_content_dirs") MSG_HASH(MENU_ENUM_LABEL_CONTENT_DIR, "content_directory") -MSG_HASH(MENU_ENUM_LABEL_DPI_OVERRIDE_ENABLE, - "dpi_override_enable") -MSG_HASH(MENU_ENUM_LABEL_DPI_OVERRIDE_VALUE, - "dpi_override_value") +MSG_HASH(MENU_ENUM_LABEL_MENU_SCALE_FACTOR, + "menu_scale_factor") MSG_HASH(MENU_ENUM_LABEL_DRIVER_SETTINGS, "driver_settings") MSG_HASH(MENU_ENUM_LABEL_CHECK_FOR_MISSING_FIRMWARE, @@ -1501,8 +1499,6 @@ MSG_HASH(MENU_ENUM_LABEL_XMB_MENU_COLOR_THEME, "xmb_menu_color_theme") MSG_HASH(MENU_ENUM_LABEL_XMB_RIBBON_ENABLE, "xmb_ribbon_enable") -MSG_HASH(MENU_ENUM_LABEL_XMB_SCALE_FACTOR, - "xmb_scale_factor") MSG_HASH(MENU_ENUM_LABEL_XMB_SHADOWS_ENABLE, "xmb_shadows_enable") MSG_HASH(MENU_ENUM_LABEL_CONTENT_SHOW_HISTORY, diff --git a/intl/msg_hash_nl.h b/intl/msg_hash_nl.h index 56b67850a8..38ed45044c 100644 --- a/intl/msg_hash_nl.h +++ b/intl/msg_hash_nl.h @@ -514,10 +514,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE, "Download Core...") MSG_HASH(MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE_CONTENT, "Download Inhoud") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_ENABLE, - "DPI Override Activeren") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_VALUE, - "DPI Override") MSG_HASH(MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS, "Driver") MSG_HASH(MENU_ENUM_LABEL_VALUE_DUMMY_ON_CORE_SHUTDOWN, @@ -1711,7 +1707,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_VOLCANIC_RED, "Vulkanisch Rood") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_RIBBON_ENABLE, "Menu Shader Pipeline") -MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_SCALE_FACTOR, +MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_SCALE_FACTOR, "Menu Scale Factor") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_SHADOWS_ENABLE, "Icon Shadows Enable") @@ -2865,10 +2861,6 @@ MSG_HASH(MENU_ENUM_SUBLABEL_MATERIALUI_MENU_HEADER_OPACITY, "Modify the opacity of the header graphic.") MSG_HASH(MENU_ENUM_SUBLABEL_MATERIALUI_MENU_FOOTER_OPACITY, "Modify the opacity of the footer graphic.") -MSG_HASH(MENU_ENUM_SUBLABEL_DPI_OVERRIDE_ENABLE, - "The menu normally scales itself dynamically. If you want to set a specific scaling size instead, enable this.") -MSG_HASH(MENU_ENUM_SUBLABEL_DPI_OVERRIDE_VALUE, - "Set the custom scaling size here. NOTE: You have to enable 'DPI Override' for this scaling size to take effect.") MSG_HASH(MENU_ENUM_SUBLABEL_CORE_ASSETS_DIRECTORY, "Save all downloaded files to this directory.") MSG_HASH(MENU_ENUM_SUBLABEL_INPUT_REMAPPING_DIRECTORY, diff --git a/intl/msg_hash_pl.h b/intl/msg_hash_pl.h index 3a1e569590..431c07a7e1 100644 --- a/intl/msg_hash_pl.h +++ b/intl/msg_hash_pl.h @@ -651,10 +651,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE, "Pobierz rdzeń...") MSG_HASH(MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE_CONTENT, "Program do pobierania treści") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_ENABLE, - "Zastąp włączone DPI") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_VALUE, - "Nadpisz DPI") MSG_HASH(MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS, "Sterowniki") MSG_HASH(MENU_ENUM_LABEL_VALUE_DUMMY_ON_CORE_SHUTDOWN, @@ -1958,7 +1954,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_VOLCANIC_RED, "Czerwień wulkaniczna") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_RIBBON_ENABLE, "Animowany efekt tłą") -MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_SCALE_FACTOR, +MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_SCALE_FACTOR, "Współczynnik skali menu") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_SHADOWS_ENABLE, "Włącz cienie ikony") @@ -3211,10 +3207,6 @@ MSG_HASH(MENU_ENUM_SUBLABEL_MATERIALUI_MENU_HEADER_OPACITY, "Zmodyfikuj krycie grafiki nagłówka.") MSG_HASH(MENU_ENUM_SUBLABEL_MATERIALUI_MENU_FOOTER_OPACITY, "Zmodyfikuj krycie grafiki stopki.") -MSG_HASH(MENU_ENUM_SUBLABEL_DPI_OVERRIDE_ENABLE, - "Menu zazwyczaj dynamicznie się skaluje. Jeśli chcesz zamiast tego ustawić określony rozmiar skalowania, włącz to.") -MSG_HASH(MENU_ENUM_SUBLABEL_DPI_OVERRIDE_VALUE, - "Ustaw tutaj niestandardowy rozmiar skalowania. UWAGA: Musisz włączyć 'DPI Override', aby ten rozmiar skali zaczął obowiązywać.") MSG_HASH(MENU_ENUM_SUBLABEL_CORE_ASSETS_DIRECTORY, "Zapisz wszystkie pobrane pliki w tym katalogu.") MSG_HASH(MENU_ENUM_SUBLABEL_INPUT_REMAPPING_DIRECTORY, diff --git a/intl/msg_hash_pt_br.h b/intl/msg_hash_pt_br.h index aa2d1bab75..6a816456bf 100644 --- a/intl/msg_hash_pt_br.h +++ b/intl/msg_hash_pt_br.h @@ -841,14 +841,6 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE_CONTENT, "Download de Conteúdo" ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_ENABLE, - "Habilitar Redefinição de DPI" - ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_VALUE, - "Redefinição de DPI" - ) MSG_HASH( MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS, "Driver" @@ -4159,7 +4151,7 @@ MSG_HASH( "Pipeline do Shader de Menu" ) MSG_HASH( - MENU_ENUM_LABEL_VALUE_XMB_SCALE_FACTOR, + MENU_ENUM_LABEL_VALUE_MENU_SCALE_FACTOR, "Fator de Escala do Menu" ) MSG_HASH( @@ -6501,15 +6493,6 @@ MSG_HASH( MENU_ENUM_SUBLABEL_MATERIALUI_MENU_FOOTER_OPACITY, "Modifica a opacidade do gráfico do rodapé." ) -MSG_HASH( - MENU_ENUM_SUBLABEL_DPI_OVERRIDE_ENABLE, - "O menu normalmente se dimensiona dinamicamente. Se você desejar definir uma escala de tamanho específica em vez disto, habilite esta função." - ) -MSG_HASH( - MENU_ENUM_SUBLABEL_DPI_OVERRIDE_VALUE, - "Define o tamanho do dimensionamento personalizado aqui.\n" - "OBS: Você deve habilitar a função 'Redefinição de DPI' para que este dimensionamento tenha efeito." - ) MSG_HASH( MENU_ENUM_SUBLABEL_CORE_ASSETS_DIRECTORY, "Salva todos os arquivos baixados neste diretório." diff --git a/intl/msg_hash_pt_pt.h b/intl/msg_hash_pt_pt.h index 8a1ad7977f..68dc1887fb 100644 --- a/intl/msg_hash_pt_pt.h +++ b/intl/msg_hash_pt_pt.h @@ -579,10 +579,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE, "Transferir núcleo...") MSG_HASH(MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE_CONTENT, "Descarregador de conteúdo") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_ENABLE, - "Ativar sobreposição de DPI") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_VALUE, - "Sobreposição de DPI") MSG_HASH(MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS, "Controlador") MSG_HASH(MENU_ENUM_LABEL_VALUE_DUMMY_ON_CORE_SHUTDOWN, @@ -1788,7 +1784,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_VOLCANIC_RED, "Vermelho vulcânico") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_RIBBON_ENABLE, "Shader do canal do menu") -MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_SCALE_FACTOR, +MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_SCALE_FACTOR, "Fator de escala do menu") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_SHADOWS_ENABLE, "Ativar sombras nos ícones") @@ -2943,10 +2939,6 @@ MSG_HASH(MENU_ENUM_SUBLABEL_MATERIALUI_MENU_HEADER_OPACITY, "Modificar a opacidade do gráfico do cabeçalho.") MSG_HASH(MENU_ENUM_SUBLABEL_MATERIALUI_MENU_FOOTER_OPACITY, "Modificar a opacidade do gráfico do rodapé.") -MSG_HASH(MENU_ENUM_SUBLABEL_DPI_OVERRIDE_ENABLE, - "O menu normalmente irá redimensionar-se, de forma dinâmica. Se você desejar definir uma dimensão em vez disso, ative esta opção.") -MSG_HASH(MENU_ENUM_SUBLABEL_DPI_OVERRIDE_VALUE, - "Definir o tamanho do dimensionamento personalizado aqui. OBS: Você deve ativar a opção 'Sobreposição de DPI' para que este dimensionamento surta efeito.") MSG_HASH(MENU_ENUM_SUBLABEL_CORE_ASSETS_DIRECTORY, "Guardar todos os ficheiros transferidos nesta pasta.") MSG_HASH(MENU_ENUM_SUBLABEL_INPUT_REMAPPING_DIRECTORY, diff --git a/intl/msg_hash_ru.h b/intl/msg_hash_ru.h index 9226b6557a..28df841485 100644 --- a/intl/msg_hash_ru.h +++ b/intl/msg_hash_ru.h @@ -595,10 +595,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE, "Загрузка ядра...") MSG_HASH(MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE_CONTENT, "Загрузка содержимого") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_ENABLE, - "Разрешить переопределение DPI") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_VALUE, - "Переопределение DPI") MSG_HASH(MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS, "Драйвер") MSG_HASH(MENU_ENUM_LABEL_VALUE_DUMMY_ON_CORE_SHUTDOWN, @@ -1824,7 +1820,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_VOLCANIC_RED, "Вулканический красный") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_RIBBON_ENABLE, "Шейдерный фон меню") -MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_SCALE_FACTOR, +MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_SCALE_FACTOR, "Масштаб в меню") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_SHADOWS_ENABLE, "Отображение теней у иконок") @@ -3014,10 +3010,6 @@ MSG_HASH(MENU_ENUM_SUBLABEL_MATERIALUI_MENU_HEADER_OPACITY, "Изменение прозрачность графического заголовка.") MSG_HASH(MENU_ENUM_SUBLABEL_MATERIALUI_MENU_FOOTER_OPACITY, "Изменение прозрачности графика нижнего колонтитула.") -MSG_HASH(MENU_ENUM_SUBLABEL_DPI_OVERRIDE_ENABLE, - "Меню интерфейса обычно сам подстраивается. Если вы хотите изменить DPI под свой вкус, то включите эту функцию.") -MSG_HASH(MENU_ENUM_SUBLABEL_DPI_OVERRIDE_VALUE, - "Установить свой размер масштабирования. ПРИМЕЧАНИЕ: Вы должны включить 'DPI Override', чтобы эти изменения заработали.") MSG_HASH(MENU_ENUM_SUBLABEL_CORE_ASSETS_DIRECTORY, "Сохранять все закаченные файлы в этой папке.") MSG_HASH(MENU_ENUM_SUBLABEL_INPUT_REMAPPING_DIRECTORY, diff --git a/intl/msg_hash_tr.h b/intl/msg_hash_tr.h index 823410cf3f..1bd1a284b3 100644 --- a/intl/msg_hash_tr.h +++ b/intl/msg_hash_tr.h @@ -833,14 +833,6 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE_CONTENT, "İçerik İndir" ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_ENABLE, - "DPI Üzerine yazma" - ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_VALUE, - "DPI Üzerine yazma" - ) MSG_HASH( MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS, "Sürücüler" @@ -3991,7 +3983,7 @@ MSG_HASH( "Menü Gölgelendirici Hattı" ) MSG_HASH( - MENU_ENUM_LABEL_VALUE_XMB_SCALE_FACTOR, + MENU_ENUM_LABEL_VALUE_MENU_SCALE_FACTOR, "Menü Ölçeklendirme Faktörü" ) MSG_HASH( @@ -6292,15 +6284,6 @@ MSG_HASH( MENU_ENUM_SUBLABEL_MATERIALUI_MENU_FOOTER_OPACITY, "Altbilgi grafiğinin opaklığını değiştirin." ) -MSG_HASH( - MENU_ENUM_SUBLABEL_DPI_OVERRIDE_ENABLE, - "Menü normalde kendini dinamik olarak ölçeklendirir. Bunun yerine belirli bir ölçekleme boyutu ayarlamak istiyorsanız, bunu etkinleştirin." - ) -MSG_HASH( - MENU_ENUM_SUBLABEL_DPI_OVERRIDE_VALUE, - "Özel ölçeklendirme boyutunu buradan ayarlayın.\n" - "NOT: Ölçeklendirme boyutunun etkili olması için 'DPI Geçersiz Kılma'yı etkinleştirmeniz gerekir." - ) MSG_HASH( MENU_ENUM_SUBLABEL_CORE_ASSETS_DIRECTORY, "İndirilen tüm dosyaları bu dizine kaydedin." diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index f9fd0d0aac..e2f24422fc 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -834,12 +834,12 @@ MSG_HASH( "Content Downloader" ) MSG_HASH( - MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_ENABLE, - "DPI Override" + MENU_ENUM_LABEL_VALUE_MENU_SCALE_FACTOR, + "Menu Scale Factor" ) MSG_HASH( - MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_VALUE, - "DPI Override" + MENU_ENUM_SUBLABEL_MENU_SCALE_FACTOR, + "Applies a global scaling factor when drawing the menu. Can be used to increase or decrease the size of the user interface." ) MSG_HASH( MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS, @@ -4192,10 +4192,6 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_XMB_RIBBON_ENABLE, "Menu Shader Pipeline" ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_XMB_SCALE_FACTOR, - "Menu Scale Factor" - ) MSG_HASH( MENU_ENUM_LABEL_VALUE_XMB_SHADOWS_ENABLE, "Icon Shadows" @@ -6535,15 +6531,6 @@ MSG_HASH( MENU_ENUM_SUBLABEL_MATERIALUI_MENU_FOOTER_OPACITY, "Modify the opacity of the footer graphic." ) -MSG_HASH( - MENU_ENUM_SUBLABEL_DPI_OVERRIDE_ENABLE, - "The menu normally scales itself dynamically. If you want to set a specific scaling size instead, enable this." - ) -MSG_HASH( - MENU_ENUM_SUBLABEL_DPI_OVERRIDE_VALUE, - "Set the custom scaling size here.\n" - "NOTE: You have to enable 'DPI Override' for this scaling size to take effect." - ) MSG_HASH( MENU_ENUM_SUBLABEL_CORE_ASSETS_DIRECTORY, "Save all downloaded files to this directory." diff --git a/intl/msg_hash_vn.h b/intl/msg_hash_vn.h index 5f95979d1c..109011ee7d 100644 --- a/intl/msg_hash_vn.h +++ b/intl/msg_hash_vn.h @@ -591,10 +591,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE, "Tải về Core...") MSG_HASH(MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE_CONTENT, "Tải về nội dung") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_ENABLE, - "DPI Override Enable") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_VALUE, - "Kích hoạt DPI Override") MSG_HASH(MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS, "Trình điều khiển") MSG_HASH(MENU_ENUM_LABEL_VALUE_DUMMY_ON_CORE_SHUTDOWN, @@ -1821,7 +1817,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_VOLCANIC_RED, "Volcanic Red") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_RIBBON_ENABLE, "Menu Shader Pipeline") -MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_SCALE_FACTOR, +MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_SCALE_FACTOR, "Menu Scale Factor") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_SHADOWS_ENABLE, "Kích hoạt Icon Shadows") @@ -3022,10 +3018,6 @@ MSG_HASH(MENU_ENUM_SUBLABEL_MATERIALUI_MENU_HEADER_OPACITY, "Modify the opacity of the header graphic.") MSG_HASH(MENU_ENUM_SUBLABEL_MATERIALUI_MENU_FOOTER_OPACITY, "Modify the opacity of the footer graphic.") -MSG_HASH(MENU_ENUM_SUBLABEL_DPI_OVERRIDE_ENABLE, - "The menu normally scales itself dynamically. If you want to set a specific scaling size instead, enable this.") -MSG_HASH(MENU_ENUM_SUBLABEL_DPI_OVERRIDE_VALUE, - "Set the custom scaling size here. NOTE: You have to enable 'DPI Override' for this scaling size to take effect.") MSG_HASH(MENU_ENUM_SUBLABEL_CORE_ASSETS_DIRECTORY, "Save all downloaded files to this directory.") MSG_HASH(MENU_ENUM_SUBLABEL_INPUT_REMAPPING_DIRECTORY, diff --git a/menu/cbs/menu_cbs_sublabel.c b/menu/cbs/menu_cbs_sublabel.c index 2d45068e75..cbbc0f0869 100644 --- a/menu/cbs/menu_cbs_sublabel.c +++ b/menu/cbs/menu_cbs_sublabel.c @@ -486,6 +486,7 @@ default_sublabel_macro(action_bind_sublabel_ozone_collapse_sidebar, default_sublabel_macro(action_bind_sublabel_ozone_truncate_playlist_name, MENU_ENUM_SUBLABEL_OZONE_TRUNCATE_PLAYLIST_NAME) default_sublabel_macro(action_bind_sublabel_ozone_scroll_content_metadata, MENU_ENUM_SUBLABEL_OZONE_SCROLL_CONTENT_METADATA) default_sublabel_macro(action_bind_sublabel_menu_use_preferred_system_color_theme, MENU_ENUM_SUBLABEL_MENU_USE_PREFERRED_SYSTEM_COLOR_THEME) +default_sublabel_macro(action_bind_sublabel_menu_scale_factor, MENU_ENUM_SUBLABEL_MENU_SCALE_FACTOR) default_sublabel_macro(action_bind_sublabel_menu_wallpaper_opacity, MENU_ENUM_SUBLABEL_MENU_WALLPAPER_OPACITY) default_sublabel_macro(action_bind_sublabel_menu_framebuffer_opacity, MENU_ENUM_SUBLABEL_MENU_FRAMEBUFFER_OPACITY) default_sublabel_macro(action_bind_sublabel_menu_horizontal_animation, MENU_ENUM_SUBLABEL_MENU_HORIZONTAL_ANIMATION) @@ -572,8 +573,6 @@ default_sublabel_macro(action_bind_sublabel_main_menu_enable_settings, default_sublabel_macro(action_bind_sublabel_rgui_show_start_screen, MENU_ENUM_SUBLABEL_RGUI_SHOW_START_SCREEN) default_sublabel_macro(action_bind_sublabel_menu_header_opacity, MENU_ENUM_SUBLABEL_MATERIALUI_MENU_HEADER_OPACITY) default_sublabel_macro(action_bind_sublabel_menu_footer_opacity, MENU_ENUM_SUBLABEL_MATERIALUI_MENU_FOOTER_OPACITY) -default_sublabel_macro(action_bind_sublabel_dpi_override_enable, MENU_ENUM_SUBLABEL_DPI_OVERRIDE_ENABLE) -default_sublabel_macro(action_bind_sublabel_dpi_override_value, MENU_ENUM_SUBLABEL_DPI_OVERRIDE_VALUE) default_sublabel_macro(action_bind_sublabel_core_assets_directory, MENU_ENUM_SUBLABEL_CORE_ASSETS_DIRECTORY) default_sublabel_macro(action_bind_sublabel_input_remapping_directory, MENU_ENUM_SUBLABEL_INPUT_REMAPPING_DIRECTORY) default_sublabel_macro(action_bind_sublabel_core_directory, MENU_ENUM_SUBLABEL_LIBRETRO_DIR_PATH) @@ -1406,12 +1405,6 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_INPUT_REMAPPING_DIRECTORY: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_input_remapping_directory); break; - case MENU_ENUM_LABEL_DPI_OVERRIDE_ENABLE: - BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_dpi_override_enable); - break; - case MENU_ENUM_LABEL_DPI_OVERRIDE_VALUE: - BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_dpi_override_value); - break; case MENU_ENUM_LABEL_MATERIALUI_MENU_FOOTER_OPACITY: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_footer_opacity); break; @@ -1686,6 +1679,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_MENU_XMB_ANIMATION_OPENING_MAIN_MENU: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_xmb_animation_opening_main_menu); break; + case MENU_ENUM_LABEL_MENU_SCALE_FACTOR: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_scale_factor); + break; case MENU_ENUM_LABEL_MENU_WALLPAPER_OPACITY: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_wallpaper_opacity); break; diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index 6b3835a59e..0222802ef7 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -57,9 +57,11 @@ #include "../../dynamic.h" -/* Global DPI-aware scale factor == - * (screen DPI) * MUI_DPI_SCALE_COEFF */ -#define MUI_DPI_SCALE_COEFF 2.2f +/* Defines the 'device independent pixel' base + * unit reference size for all UI elements. + * 212 px corresponds to the the baseline standard + * 22 inch, 96 DPI display */ +#define MUI_DIP_BASE_UNIT_SIZE 212.0f /* This struct holds the y position and the line height for each menu entry */ typedef struct @@ -152,7 +154,10 @@ typedef struct materialui_handle bool is_file_list; bool is_dropdown_list; - float dpi_scale_factor; + unsigned last_width; + unsigned last_height; + float last_scale_factor; + float dip_base_unit_size; int cursor_size; @@ -649,7 +654,7 @@ static void materialui_compute_entries_box(materialui_handle_t* mui, int width, lines = materialui_count_lines(wrapped_sublabel_str); } - node->line_height = (mui->dpi_scale_factor / 3) + (lines * mui->font->size); + node->line_height = (mui->dip_base_unit_size / 3) + (lines * mui->font->size); node->y = sum; sum += node->line_height; } @@ -691,6 +696,9 @@ static float materialui_get_scroll(materialui_handle_t *mui) return sum - half; } +static void materialui_context_reset_internal( + materialui_handle_t *mui, bool is_threaded); + /* Called on each frame. We use this callback to: * - Determine current scroll postion * - Determine index of first/last onscreen entries @@ -706,10 +714,30 @@ static void materialui_render(void *data, bool first_entry_found = false; size_t i; int bottom; + float scale_factor; if (!mui || !list) return; + /* Check whether menu scale factor has changed */ + scale_factor = menu_display_get_dpi_scale(width, height); + if (scale_factor != mui->last_scale_factor) + { + mui->dip_base_unit_size = scale_factor * MUI_DIP_BASE_UNIT_SIZE; + materialui_context_reset_internal(mui, video_driver_is_threaded()); + mui->last_scale_factor = scale_factor; + } + + /* Check whether screen dimensions have changed + * (this can happen without changing the scaling factor, + * and it affects list spacing) */ + if ((width != mui->last_width) || (height != mui->last_height)) + { + mui->need_compute = true; + mui->last_width = width; + mui->last_height = height; + } + if (mui->need_compute) { if (mui->font) @@ -1006,20 +1034,20 @@ static void materialui_render_label_value( menu_display_draw_text(mui->font2, wrapped_sublabel_str, mui->margin + icon_margin, - y + (mui->dpi_scale_factor / 4) + mui->font->size, + y + (mui->dip_base_unit_size / 4) + mui->font->size, width, height, sublabel_color, TEXT_ALIGN_LEFT, 1.0f, false, 0, false); } menu_display_draw_text(mui->font, label_str, ticker_label_x_offset + mui->margin + icon_margin, - y + (mui->dpi_scale_factor / 5), + y + (mui->dip_base_unit_size / 5), width, height, color, TEXT_ALIGN_LEFT, 1.0f, false, 0, false); if (do_draw_text) menu_display_draw_text(mui->font, value_str, value_x_offset + width - mui->margin, - y + (mui->dpi_scale_factor / 5), + y + (mui->dip_base_unit_size / 5), width, height, color, TEXT_ALIGN_RIGHT, 1.0f, false, 0, false); if (texture_switch2) @@ -1027,7 +1055,7 @@ static void materialui_render_label_value( mui->icon_size, (uintptr_t)texture_switch2, 0, - y + (mui->dpi_scale_factor / 6) - mui->icon_size/2, + y + (mui->dip_base_unit_size / 6) - mui->icon_size/2, width, height, 0, @@ -1050,7 +1078,7 @@ static void materialui_render_label_value( mui->icon_size, (uintptr_t)texture_switch, width - mui->margin - mui->icon_size, - y + (mui->dpi_scale_factor / 6) - mui->icon_size/2, + y + (mui->dip_base_unit_size / 6) - mui->icon_size/2, width, height, 0, @@ -1756,20 +1784,22 @@ static void materialui_layout(materialui_handle_t *mui, bool video_is_threaded) int new_font_size, new_font_size2; unsigned new_header_height; - new_header_height = mui->dpi_scale_factor / 3; - new_font_size = mui->dpi_scale_factor / 9; - new_font_size2 = mui->dpi_scale_factor / 12; + mui->cursor_size = mui->dip_base_unit_size / 3; - mui->shadow_height = mui->dpi_scale_factor / 36; - mui->scrollbar_width = mui->dpi_scale_factor / 36; + new_header_height = mui->dip_base_unit_size / 3; + new_font_size = mui->dip_base_unit_size / 9; + new_font_size2 = mui->dip_base_unit_size / 12; + + mui->shadow_height = mui->dip_base_unit_size / 36; + mui->scrollbar_width = mui->dip_base_unit_size / 36; mui->tabs_height = 0; if (materialui_list_get_size(mui, MENU_LIST_PLAIN) == 1) - mui->tabs_height = mui->dpi_scale_factor / 3; + mui->tabs_height = mui->dip_base_unit_size / 3; - mui->line_height = mui->dpi_scale_factor / 3; - mui->margin = mui->dpi_scale_factor / 9; - mui->icon_size = mui->dpi_scale_factor / 3; + mui->line_height = mui->dip_base_unit_size / 3; + mui->margin = mui->dip_base_unit_size / 9; + mui->icon_size = mui->dip_base_unit_size / 3; /* we assume the average glyph aspect ratio is close to 3:4 */ mui->glyph_width = new_font_size * 3/4; @@ -1777,6 +1807,17 @@ static void materialui_layout(materialui_handle_t *mui, bool video_is_threaded) menu_display_set_header_height(new_header_height); + if (mui->font) + { + menu_display_font_free(mui->font); + mui->font = NULL; + } + if (mui->font2) + { + menu_display_font_free(mui->font2); + mui->font2 = NULL; + } + mui->font = menu_display_font( APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_FONT, new_font_size, @@ -1804,6 +1845,8 @@ static void materialui_layout(materialui_handle_t *mui, bool video_is_threaded) if (m_width2) mui->glyph_width2 = m_width2; } + + mui->need_compute = true; } static void *materialui_init(void **userdata, bool video_is_threaded) @@ -1826,23 +1869,24 @@ static void *materialui_init(void **userdata, bool video_is_threaded) *userdata = mui; - /* Get global DPI-aware scale factor - * Note: screen DPI is a physical characteristic. - * It doesn't change, so we only have to do this once. */ + /* Get DPI/screen-size-aware base unit size for + * UI elements */ video_driver_get_size(&width, &height); - mui->dpi_scale_factor = menu_display_get_dpi(width, height) * MUI_DPI_SCALE_COEFF; - mui->cursor_size = mui->dpi_scale_factor / 3; + mui->last_width = width; + mui->last_height = height; + mui->last_scale_factor = menu_display_get_dpi_scale(width, height); + mui->dip_base_unit_size = mui->last_scale_factor * MUI_DIP_BASE_UNIT_SIZE; - mui->need_compute = false; - mui->is_playlist = false; - mui->is_file_list = false; - mui->is_dropdown_list = false; + mui->need_compute = false; + mui->is_playlist = false; + mui->is_file_list = false; + mui->is_dropdown_list = false; mui->first_onscreen_entry = 0; mui->last_onscreen_entry = 0; - mui->menu_title[0] = '\0'; + mui->menu_title[0] = '\0'; return menu; error: @@ -1884,8 +1928,12 @@ static void materialui_context_destroy(void *data) for (i = 0; i < MUI_TEXTURE_LAST; i++) video_driver_texture_unload(&mui->textures.list[i]); - menu_display_font_free(mui->font); - menu_display_font_free(mui->font2); + if (mui->font) + menu_display_font_free(mui->font); + mui->font = NULL; + if (mui->font2) + menu_display_font_free(mui->font2); + mui->font2 = NULL; materialui_context_bg_destroy(mui); } @@ -2039,7 +2087,7 @@ static void materialui_populate_entries( * otherwise it is hidden) */ mui->tabs_height = 0; if (materialui_list_get_size(mui, MENU_LIST_PLAIN) == 1) - mui->tabs_height = mui->dpi_scale_factor / 3; + mui->tabs_height = mui->dip_base_unit_size / 3; mui->need_compute = true; @@ -2049,13 +2097,12 @@ static void materialui_populate_entries( * is acted upon */ } -/* Context reset is called on launch or when a core is launched */ -static void materialui_context_reset(void *data, bool is_threaded) +static void materialui_context_reset_internal( + materialui_handle_t *mui, bool is_threaded) { - materialui_handle_t *mui = (materialui_handle_t*)data; - settings_t *settings = config_get_ptr(); + settings_t *settings = config_get_ptr(); - if (!mui || !settings) + if (!settings) return; materialui_layout(mui, is_threaded); @@ -2067,6 +2114,17 @@ static void materialui_context_reset(void *data, bool is_threaded) task_push_image_load(settings->paths.path_menu_wallpaper, video_driver_supports_rgba(), 0, menu_display_handle_wallpaper_upload, NULL); +} + +/* Context reset is called on launch or when a core is launched */ +static void materialui_context_reset(void *data, bool is_threaded) +{ + materialui_handle_t *mui = (materialui_handle_t*)data; + + if (!mui) + return; + + materialui_context_reset_internal(mui, is_threaded); video_driver_monitor_reset(); } @@ -2687,7 +2745,7 @@ static void materialui_list_insert(void *userdata, return; } - node->line_height = mui->dpi_scale_factor / 3; + node->line_height = mui->dip_base_unit_size / 3; node->y = 0; node->texture_switch_set = false; node->texture_switch2_set = false; diff --git a/menu/drivers/stripes.c b/menu/drivers/stripes.c index 9c807fc717..ea774cd18a 100644 --- a/menu/drivers/stripes.c +++ b/menu/drivers/stripes.c @@ -2811,7 +2811,7 @@ static void stripes_frame(void *data, video_frame_info_t *video_info) if (!stripes) return; - scale_factor = (settings->uints.menu_xmb_scale_factor * (float)width) / (1920.0 * 100); + scale_factor = (settings->floats.menu_scale_factor * (float)width) / 1920.0f; pseudo_font_length = stripes->icon_spacing_horizontal * 4 - stripes->icon_size / 4; msg[0] = '\0'; @@ -3022,7 +3022,7 @@ static void stripes_layout_ps3(stripes_handle_t *stripes, int width, int height) settings_t *settings = config_get_ptr(); float scale_factor = - (settings->uints.menu_xmb_scale_factor * width) / (1920.0 * 100); + (settings->floats.menu_scale_factor * width) / 1920.0f; stripes->above_subitem_offset = 1.5; stripes->above_item_offset = -1.0; @@ -3107,10 +3107,10 @@ static void stripes_layout_psp(stripes_handle_t *stripes, int width) unsigned new_font_size, new_header_height; settings_t *settings = config_get_ptr(); float scale_factor = - ((settings->uints.menu_xmb_scale_factor * width) / (1920.0 * 100)) * 1.5; + ((settings->floats.menu_scale_factor * width) / 1920.0) * 1.5; #ifdef _3DS scale_factor = - settings->uints.menu_xmb_scale_factor / 400.0; + settings->floats.menu_scale_factor / 4.0; #endif stripes->above_subitem_offset = 1.5; @@ -3248,7 +3248,7 @@ static void *stripes_init(void **userdata, bool video_is_threaded) stripes_handle_t *stripes = NULL; settings_t *settings = config_get_ptr(); menu_handle_t *menu = (menu_handle_t*)calloc(1, sizeof(*menu)); - float scale_value = settings->uints.menu_xmb_scale_factor; + float scale_value = settings->floats.menu_scale_factor * 100.0f; /* scaling multiplier formulas made from these values: */ /* stripes_scale 50 = {2.5, 2.5, 2, 1.7, 2.5, 4, 2.4, 2.5} */ diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 4f77d14322..8aa2140164 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -3333,7 +3333,7 @@ static void xmb_render(void *data, if (!xmb) return; - scale_factor = (settings->uints.menu_xmb_scale_factor * (float)width) / (1920.0 * 100); + scale_factor = (settings->floats.menu_scale_factor * (float)width) / 1920.0f; if (scale_factor >= 0.1f && scale_factor != xmb->previous_scale_factor) xmb_context_reset_internal(xmb, video_driver_is_threaded(), @@ -3641,7 +3641,7 @@ static void xmb_frame(void *data, video_frame_info_t *video_info) if (!xmb) return; - scale_factor = (settings->uints.menu_xmb_scale_factor * (float)width) / (1920.0 * 100); + scale_factor = (settings->floats.menu_scale_factor * (float)width) / 1920.0f; thumbnail_scale_factor = ((float)settings->uints.menu_xmb_thumbnail_scale_factor / 100.0f); pseudo_font_length = xmb->icon_spacing_horizontal * 4 - xmb->icon_size / 4; @@ -4424,7 +4424,7 @@ static void xmb_layout_ps3(xmb_handle_t *xmb, int width) settings_t *settings = config_get_ptr(); float scale_factor = - (settings->uints.menu_xmb_scale_factor * width) / (1920.0 * 100); + (settings->floats.menu_scale_factor * (float)width) / 1920.0f; xmb->above_subitem_offset = 1.5; xmb->above_item_offset = -1.0; @@ -4481,10 +4481,10 @@ static void xmb_layout_psp(xmb_handle_t *xmb, int width) unsigned new_font_size, new_header_height; settings_t *settings = config_get_ptr(); float scale_factor = - ((settings->uints.menu_xmb_scale_factor * width) / (1920.0 * 100)) * 1.5; + ((settings->floats.menu_scale_factor * (float)width) / 1920.0f) * 1.5f; #ifdef _3DS scale_factor = - settings->uints.menu_xmb_scale_factor / 400.0; + settings->floats.menu_scale_factor / 4.0f; #endif xmb->above_subitem_offset = 1.5; @@ -4685,7 +4685,7 @@ static void *xmb_init(void **userdata, bool video_is_threaded) xmb_handle_t *xmb = NULL; settings_t *settings = config_get_ptr(); menu_handle_t *menu = (menu_handle_t*)calloc(1, sizeof(*menu)); - float scale_value = settings->uints.menu_xmb_scale_factor; + float scale_value = settings->floats.menu_scale_factor * 100.0f; /* scaling multiplier formulas made from these values: */ /* xmb_scale 50 = {2.5, 2.5, 2, 1.7, 2.5, 4, 2.4, 2.5} */ diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 5437e70486..7b8fe04f45 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -5405,6 +5405,7 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct case DISPLAYLIST_MENU_SETTINGS_LIST: { menu_displaylist_build_info_t build_list[] = { + {MENU_ENUM_LABEL_MENU_SCALE_FACTOR, PARSE_ONLY_FLOAT}, {MENU_ENUM_LABEL_MENU_WALLPAPER, PARSE_ONLY_PATH }, {MENU_ENUM_LABEL_DYNAMIC_WALLPAPER, PARSE_ONLY_BOOL }, {MENU_ENUM_LABEL_MENU_WALLPAPER_OPACITY, PARSE_ONLY_FLOAT}, @@ -5426,10 +5427,7 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct {MENU_ENUM_LABEL_MENU_RGUI_SHADOWS, PARSE_ONLY_BOOL}, {MENU_ENUM_LABEL_MENU_RGUI_PARTICLE_EFFECT, PARSE_ONLY_UINT}, {MENU_ENUM_LABEL_MENU_RGUI_PARTICLE_EFFECT_SPEED, PARSE_ONLY_FLOAT}, - {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}, - {MENU_ENUM_LABEL_XMB_SCALE_FACTOR, PARSE_ONLY_UINT}, {MENU_ENUM_LABEL_XMB_FONT, PARSE_ONLY_PATH}, {MENU_ENUM_LABEL_MENU_FONT_COLOR_RED, PARSE_ONLY_UINT}, {MENU_ENUM_LABEL_MENU_FONT_COLOR_GREEN, PARSE_ONLY_UINT}, diff --git a/menu/menu_driver.c b/menu/menu_driver.c index 38b8979b54..5d3949a994 100644 --- a/menu/menu_driver.c +++ b/menu/menu_driver.c @@ -75,6 +75,16 @@ #define POWERSTATE_CHECK_INTERVAL (30 * 1000000) #define DATETIME_CHECK_INTERVAL 1000000 +/* Number of pixels corner-to-corner on a 1080p + * display: + * > sqrt((1920 * 1920) + (1080 * 1080)) + * Note: This is a double, so no suffix */ +#define DIAGONAL_PIXELS_1080P 2202.90717008229831581901 + +/* Standard reference DPI value, used when determining + * DPI-aware menu scaling factors */ +#define REFERENCE_DPI 96.0f + typedef struct menu_ctx_load_image { void *data; @@ -2024,26 +2034,198 @@ void menu_display_unset_framebuffer_dirty_flag(void) menu_display_framebuf_dirty = false; } -/* Get the preferred DPI at which to render the menu. - * NOTE: Only MaterialUI menu driver so far uses this, neither - * RGUI or XMB use this. */ -float menu_display_get_dpi(unsigned width, unsigned height) +float menu_display_get_pixel_scale(unsigned width, unsigned height) { - float dpi = 0.0f; - settings_t *settings = config_get_ptr(); + static unsigned last_width = 0; + static unsigned last_height = 0; + static float scale = 0.0f; + static bool scale_cached = false; + settings_t *settings = config_get_ptr(); - /* Use manual override, if set */ - if (settings && settings->bools.menu_dpi_override_enable) - return settings->uints.menu_dpi_override_value; + /* We need to perform a square root here, which + * can be slow on some platforms (not *slow*, but + * it involves enough work that it's worth trying + * to optimise). We therefore cache the pixel scale, + * and only update on first run or when the video + * size changes */ + if (!scale_cached || + (width != last_width) || + (height != last_height)) + { + /* Baseline reference is a 1080p display */ + scale = (float)( + sqrt((double)((width * width) + (height * height))) / + DIAGONAL_PIXELS_1080P); - /* TODO/FIXME: Implement proper scaling for all platforms */ -#ifdef RARCH_MOBILE - dpi = sqrt((width * width) + (height * height)) / 11.0f; -#else - dpi = sqrt((width * width) + (height * height)) / 14.3f; + scale_cached = true; + last_width = width; + last_height = height; + } + + /* Apply user scaling factor */ + if (settings) + return scale * ((settings->floats.menu_scale_factor > 0.0001f) ? + settings->floats.menu_scale_factor : 1.0f); + + return scale; +} + +float menu_display_get_dpi_scale(unsigned width, unsigned height) +{ + static unsigned last_width = 0; + static unsigned last_height = 0; + static float scale = 0.0f; + static bool scale_cached = false; + settings_t *settings = config_get_ptr(); + + /* Scale is based on display metrics - these are a fixed + * hardware property. To minimise performance overheads + * we therefore only call video_context_driver_get_metrics() + * on first run, or when the current video resolution changes */ + if (!scale_cached || + (width != last_width) || + (height != last_height)) + { + float diagonal_pixels; + float pixel_scale; + float dpi; + gfx_ctx_metrics_t metrics; + + /* Determine the diagonal 'size' of the display + * (or window) in terms of pixels */ + diagonal_pixels = (float)sqrt( + (double)((width * width) + (height * height))); + + /* TODO/FIXME: On Mac, calling video_context_driver_get_metrics() + * here causes RetroArch to crash (EXC_BAD_ACCESS). This is + * unfortunate, and needs to be fixed at the gfx context driver + * level. Until this is done, all we can do is fallback to using + * the old legacy 'magic number' scaling on Mac platforms. + * Note: We use a rather ugly construct here so the 'Mac hack' + * can be added in one place, without polluting the rest of + * the code. */ +#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) + if (true) + { + scale = (diagonal_pixels / 6.5f) / 212.0f; + scale_cached = true; + last_width = width; + last_height = height; + + if (settings) + return scale * ((settings->floats.menu_scale_factor > 0.0001f) ? + settings->floats.menu_scale_factor : 1.0f); + + return scale; + } #endif - return dpi; + /* Get pixel scale relative to baseline 1080p display */ + pixel_scale = diagonal_pixels / DIAGONAL_PIXELS_1080P; + + /* Attempt to get display DPI */ + metrics.type = DISPLAY_METRIC_DPI; + metrics.value = &dpi; + + if (video_context_driver_get_metrics(&metrics) && (dpi > 0.0f)) + { + float display_size; + float dpi_scale; + +#if defined(ANDROID) || defined(HAVE_COCOATOUCH) + /* Android/iOS devices tell complete lies when + * reporting DPI values. From the Android devices + * I've had access to, the DPI is generally + * overestimated by 17%. All we can do is apply + * a blind correction factor... */ + dpi = dpi * 0.83f; +#endif + + /* Note: If we are running in windowed mode, this + * 'display size' is actually the window size - which + * kinda makes a mess of everything. Since we cannot + * get fullscreen resolution when running in windowed + * mode, there is nothing we can do about this. So just + * treat the window as a display, and hope for the best... */ + display_size = diagonal_pixels / dpi; + dpi_scale = dpi / REFERENCE_DPI; + + /* Note: We have tried leveraging every possible metric + * (and numerous studies on TV/monitor/mobile device + * usage habits) to determine an appropriate auto scaling + * factor. *None of these 'smart'/technical methods work + * consistently in the real world* - there is simply too + * much variance. + * So instead we have implemented a very fuzzy/loose + * method which is crude as can be, but actually has + * some semblance of usability... */ + + if (display_size > 24.0f) + { + /* DPI scaling fails miserably when using large + * displays. Having a UI element that's 1 inch high + * on all screens might seem like a good idea - until + * you realise that a HTPC user is probably sitting + * several metres from their TV, which makes something + * 1 inch high virtually invisible. + * So we make some assumptions: + * - Normal size displays <= 24 inches are probably + * PC monitors, with an eye-to-screen distance of + * 1 arm length. Under these conditions, fixed size + * (DPI scaled) UI elements should be visible for most + * users + * - Large displays > 24 inches start to encroach on + * TV territory. Once we start working with TVs, we + * have to consider users sitting on a couch - and + * in this situation, we fall back to the age-old + * standard of UI elements occupying a fixed fraction + * of the display size (i.e. just look at the menu of + * any console system for the past decade) + * - 24 -> 32 inches is a grey area, where the display + * might be a monitor or a TV. Above 32 inches, a TV + * is almost a certainty. So we simply lerp between + * dpi scaling and pixel scaling as the display size + * increases from 24 to 32 */ + float fraction = (display_size > 32.0f) ? 32.0f : display_size; + fraction = fraction - 24.0f; + fraction = fraction / (32.0f - 24.0f); + + scale = ((1.0f - fraction) * dpi_scale) + (fraction * pixel_scale); + } + else if (display_size < 12.0f) + { + /* DPI scaling also fails when using very small + * displays - i.e. mobile devices (tablets/phones). + * That 1 inch UI element is going to look pretty + * dumb on a 5 inch screen in landscape orientation... + * We're essentially in the opposite situation to the + * TV case above, and it turns out that a similar + * solution provides relief: as screen size reduces + * from 12 inches to zero, we lerp from dpi scaling + * to pixel scaling */ + float fraction = display_size / 12.0f; + + scale = ((1.0f - fraction) * pixel_scale) + (fraction * dpi_scale); + } + else + scale = dpi_scale; + } + /* If DPI retrieval is unsupported, all we can do + * is use the raw pixel scale */ + else + scale = pixel_scale; + + scale_cached = true; + last_width = width; + last_height = height; + } + + /* Apply user scaling factor */ + if (settings) + return scale * ((settings->floats.menu_scale_factor > 0.0001f) ? + settings->floats.menu_scale_factor : 1.0f); + + return scale; } bool menu_display_driver_exists(const char *s) diff --git a/menu/menu_driver.h b/menu/menu_driver.h index 639c6f96ae..051fab0e58 100644 --- a/menu/menu_driver.h +++ b/menu/menu_driver.h @@ -575,7 +575,8 @@ void menu_display_unset_viewport(unsigned width, unsigned height); bool menu_display_get_framebuffer_dirty_flag(void); void menu_display_set_framebuffer_dirty_flag(void); void menu_display_unset_framebuffer_dirty_flag(void); -float menu_display_get_dpi(unsigned width, unsigned height); +float menu_display_get_pixel_scale(unsigned width, unsigned height); +float menu_display_get_dpi_scale(unsigned width, unsigned height); bool menu_display_init_first_driver(bool video_is_threaded); bool menu_display_restore_clear_color(void); void menu_display_clear_color(menu_display_ctx_clearcolor_t *color, diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 757250d497..345802e248 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -12193,40 +12193,23 @@ static bool setting_append_list( START_SUB_GROUP(list, list_info, "Display", &group_info, &subgroup_info, parent_group); - if (string_is_equal(settings->arrays.menu_driver, "glui")) - { - /* only GLUI uses these values, don't show - * them on other drivers */ - CONFIG_BOOL( + /* Only implemented for GLUI and XMB at present */ + if (string_is_equal(settings->arrays.menu_driver, "glui") || + string_is_equal(settings->arrays.menu_driver, "xmb")) + CONFIG_FLOAT( list, list_info, - &settings->bools.menu_dpi_override_enable, - MENU_ENUM_LABEL_DPI_OVERRIDE_ENABLE, - MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_ENABLE, - DEFAULT_MENU_DPI_OVERRIDE_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); - - CONFIG_UINT( - list, list_info, - &settings->uints.menu_dpi_override_value, - MENU_ENUM_LABEL_DPI_OVERRIDE_VALUE, - MENU_ENUM_LABEL_VALUE_DPI_OVERRIDE_VALUE, - DEFAULT_MENU_DPI_OVERRIDE_VALUE, + &settings->floats.menu_scale_factor, + MENU_ENUM_LABEL_MENU_SCALE_FACTOR, + MENU_ENUM_LABEL_VALUE_MENU_SCALE_FACTOR, + DEFAULT_MENU_SCALE_FACTOR, + "%.2fx", &group_info, &subgroup_info, parent_group, general_write_handler, general_read_handler); (*list)[list_info->index - 1].action_ok = &setting_action_ok_uint; - (*list)[list_info->index - 1].offset_by = 72; - menu_settings_list_current_add_range(list, list_info, 72, 999, 1, true, true); - } + menu_settings_list_current_add_range(list, list_info, 0.2, 5.0, 0.01, true, true); #ifdef HAVE_XMB if (string_is_equal(settings->arrays.menu_driver, "xmb")) @@ -12248,22 +12231,6 @@ static bool setting_append_list( menu_settings_list_current_add_range(list, list_info, 0, 100, 1, true, true); SETTINGS_DATA_LIST_CURRENT_ADD_FLAGS(list, list_info, SD_FLAG_LAKKA_ADVANCED); - CONFIG_UINT( - list, list_info, - &settings->uints.menu_xmb_scale_factor, - MENU_ENUM_LABEL_XMB_SCALE_FACTOR, - MENU_ENUM_LABEL_VALUE_XMB_SCALE_FACTOR, - xmb_scale_factor, - &group_info, - &subgroup_info, - parent_group, - general_write_handler, - general_read_handler); - (*list)[list_info->index - 1].action_ok = &setting_action_ok_uint; - (*list)[list_info->index - 1].offset_by = 20; - menu_settings_list_current_add_range(list, list_info, (*list)[list_info->index -1].offset_by, 200, 1, true, true); - SETTINGS_DATA_LIST_CURRENT_ADD_FLAGS(list, list_info, SD_FLAG_LAKKA_ADVANCED); - CONFIG_PATH( list, list_info, settings->paths.path_menu_xmb_font, diff --git a/msg_hash.h b/msg_hash.h index 8d3dba037b..b757ba89a5 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -498,6 +498,7 @@ enum msg_hash_enums MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_BEGIN, MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_END = MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_BEGIN + RARCH_BIND_LIST_END, + MENU_LABEL(MENU_SCALE_FACTOR), MENU_LABEL(MENU_WALLPAPER_OPACITY), MENU_LABEL(MENU_FRAMEBUFFER_OPACITY), MENU_LABEL(MENU_USE_PREFERRED_SYSTEM_COLOR_THEME), @@ -918,7 +919,6 @@ enum msg_hash_enums MENU_LABEL(SHOW_ADVANCED_SETTINGS), MENU_LABEL(THREADED_DATA_RUNLOOP_ENABLE), MENU_LABEL(XMB_ALPHA_FACTOR), - MENU_LABEL(XMB_SCALE_FACTOR), MENU_LABEL(MENU_FONT_COLOR_RED), MENU_LABEL(MENU_FONT_COLOR_GREEN), MENU_LABEL(MENU_FONT_COLOR_BLUE), @@ -1508,8 +1508,6 @@ enum msg_hash_enums MENU_LABEL(SAVESTATE_THUMBNAIL_ENABLE), MENU_LABEL(SUSPEND_SCREENSAVER_ENABLE), - MENU_LABEL(DPI_OVERRIDE_ENABLE), - MENU_LABEL(DPI_OVERRIDE_VALUE), MENU_ENUM_LABEL_VOLUME_UP, MENU_ENUM_LABEL_VOLUME_DOWN, diff --git a/retroarch.c b/retroarch.c index e38eb1c447..f02e39bc57 100644 --- a/retroarch.c +++ b/retroarch.c @@ -13112,19 +13112,41 @@ static void menu_input_set_pointer_visibility(retro_time_t current_time) static float menu_input_get_dpi(void) { - gfx_ctx_metrics_t metrics; - float dpi = 0.0f; - menu_handle_t *menu_data = menu_driver_get_ptr(); - bool is_rgui = - (menu_data && menu_data->driver_ctx && menu_data->driver_ctx->set_texture); + static unsigned last_video_width = 0; + static unsigned last_video_height = 0; + static float dpi = 0.0f; + static bool dpi_cached = false; + menu_handle_t *menu_data = menu_driver_get_ptr(); + bool is_rgui; - /* Regardless of menu driver, need 'actual' - * screen DPI */ - metrics.type = DISPLAY_METRIC_DPI; - metrics.value = &dpi; + if (!menu_data) + return 0.0f; - if (!video_context_driver_get_metrics(&metrics)) - dpi = 0.0f; /* Ensure a sane value (unnecessary check, but no harm being safe) */ + is_rgui = menu_data->driver_ctx && menu_data->driver_ctx->set_texture; + + /* Regardless of menu driver, need 'actual' screen DPI + * Note: DPI is a fixed hardware property. To minimise performance + * overheads we therefore only call video_context_driver_get_metrics() + * on first run, or when the current video resolution changes */ + if (!dpi_cached || + (video_driver_width != last_video_width) || + (video_driver_height != last_video_height)) + { + gfx_ctx_metrics_t metrics; + + metrics.type = DISPLAY_METRIC_DPI; + metrics.value = &dpi; + + /* Note: If video_context_driver_get_metrics() fails, + * we don't know what happened to dpi - so ensure it + * is reset to a sane value */ + if (!video_context_driver_get_metrics(&metrics)) + dpi = 0.0f; + + dpi_cached = true; + last_video_width = video_driver_width; + last_video_height = video_driver_height; + } /* RGUI uses a framebuffer texture, which means we * operate in menu space, not screen space. @@ -13135,11 +13157,9 @@ static float menu_input_get_dpi(void) { size_t fb_pitch; unsigned fb_width, fb_height; - struct video_viewport vp; - /* Read display/framebuffer info */ + /* Read framebuffer info */ menu_display_get_fb_size(&fb_width, &fb_height, &fb_pitch); - video_driver_get_viewport_info(&vp); /* Rationale for current 'DPI' determination method: * - Divide screen height by DPI, to get number of vertical @@ -13148,7 +13168,7 @@ static float menu_input_get_dpi(void) * '1 inch' squares to get number of menu space pixels * per inch * This is crude, but should be sufficient... */ - dpi = ((float)fb_height / (float)vp.full_height) * dpi; + return ((float)fb_height / (float)video_driver_height) * dpi; } return dpi;