Start downscaling on file_path_special.c

This commit is contained in:
LibretroAdmin 2022-08-02 17:54:38 +02:00
parent 70ca20fbf9
commit 556e6702ef
3 changed files with 55 additions and 104 deletions

View File

@ -151,14 +151,6 @@ void fill_pathname_application_special(char *s,
{
switch (type)
{
case APPLICATION_SPECIAL_DIRECTORY_AUTOCONFIG:
{
settings_t *settings = config_get_ptr();
const char *dir_autoconfig = settings->paths.directory_autoconfig;
const char *joypad_driver = settings->arrays.input_joypad_driver;
fill_pathname_join(s, dir_autoconfig, joypad_driver, len);
}
break;
case APPLICATION_SPECIAL_DIRECTORY_CONFIG:
{
settings_t *settings = config_get_ptr();
@ -234,16 +226,17 @@ void fill_pathname_application_special(char *s,
}
else if (string_is_equal(menu_ident, "glui"))
{
fill_pathname_application_special(s1, sizeof(s1),
APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI);
const char *dir_assets = settings->paths.directory_assets;
fill_pathname_join(s1, dir_assets, "glui", sizeof(s1));
if (!string_is_empty(s1))
strlcat(s1, "/sounds", sizeof(s1));
}
else if (string_is_equal(menu_ident, "ozone"))
{
fill_pathname_application_special(s1, sizeof(s1),
APPLICATION_SPECIAL_DIRECTORY_ASSETS_OZONE);
const char *dir_assets = settings->paths.directory_assets;
fill_pathname_join(s1, dir_assets, "ozone",
sizeof(s1));
if (!string_is_empty(s1))
strlcat(s1, "/sounds", sizeof(s1));
@ -264,32 +257,16 @@ void fill_pathname_application_special(char *s,
settings_t *settings = config_get_ptr();
const char *menu_ident = settings->arrays.menu_driver;
if (string_is_equal(menu_ident, "xmb"))
if (string_is_equal(menu_ident, "xmb"))
fill_pathname_application_special(s, len, APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_ICONS);
else if (string_is_equal(menu_ident, "glui"))
{
/* Type APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_ICONS
* contains no core system icons so we use the icon directory
* from ozone here */
fill_pathname_application_special(s, len, APPLICATION_SPECIAL_DIRECTORY_ASSETS_OZONE_ICONS);
}
else if (string_is_equal(menu_ident, "ozone"))
else if ( string_is_equal(menu_ident, "ozone")
|| string_is_equal(menu_ident, "glui"))
fill_pathname_application_special(s, len, APPLICATION_SPECIAL_DIRECTORY_ASSETS_OZONE_ICONS);
else if (len)
s[0] = '\0';
#endif
}
break;
case APPLICATION_SPECIAL_DIRECTORY_ASSETS_OZONE:
#ifdef HAVE_OZONE
{
settings_t *settings = config_get_ptr();
const char *dir_assets = settings->paths.directory_assets;
fill_pathname_join(s, dir_assets, "ozone",
len);
}
#endif
break;
case APPLICATION_SPECIAL_DIRECTORY_ASSETS_OZONE_ICONS:
#ifdef HAVE_OZONE
@ -337,10 +314,8 @@ void fill_pathname_application_special(char *s,
char rgui_dir[PATH_MAX_LENGTH];
settings_t *settings = config_get_ptr();
const char *dir_assets = settings->paths.directory_assets;
fill_pathname_join(rgui_dir, dir_assets, "rgui",
sizeof(rgui_dir));
fill_pathname_join(s,
rgui_dir, "font", len);
fill_pathname_join(rgui_dir, dir_assets, "rgui", sizeof(rgui_dir));
fill_pathname_join(s, rgui_dir, "font", len);
}
#endif
break;
@ -352,57 +327,7 @@ void fill_pathname_application_special(char *s,
settings_t *settings = config_get_ptr();
const char *dir_assets = settings->paths.directory_assets;
fill_pathname_join(s1, dir_assets, "xmb", sizeof(s1));
fill_pathname_join(s,
s1, xmb_theme_ident(), len);
}
#endif
break;
case APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI:
#ifdef HAVE_MATERIALUI
{
settings_t *settings = config_get_ptr();
const char *dir_assets = settings->paths.directory_assets;
fill_pathname_join(s, dir_assets, "glui", len);
}
#endif
break;
case APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_ICONS:
#ifdef HAVE_MATERIALUI
fill_pathname_application_special(s, len,
APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI);
#endif
break;
case APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_FONT:
#ifdef HAVE_MATERIALUI
{
char s1[PATH_MAX_LENGTH];
s1[0] = '\0';
switch (*msg_hash_get_uint(MSG_HASH_USER_LANGUAGE))
{
case RETRO_LANGUAGE_ARABIC:
case RETRO_LANGUAGE_PERSIAN:
fill_pathname_application_special(s1, sizeof(s1),
APPLICATION_SPECIAL_DIRECTORY_ASSETS_PKG);
fill_pathname_join(s, s1, "fallback-font.ttf", len);
break;
case RETRO_LANGUAGE_CHINESE_SIMPLIFIED:
case RETRO_LANGUAGE_CHINESE_TRADITIONAL:
fill_pathname_application_special(s1, sizeof(s1),
APPLICATION_SPECIAL_DIRECTORY_ASSETS_PKG);
fill_pathname_join(s, s1, "chinese-fallback-font.ttf", len);
break;
case RETRO_LANGUAGE_KOREAN:
fill_pathname_application_special(s1, sizeof(s1),
APPLICATION_SPECIAL_DIRECTORY_ASSETS_PKG);
fill_pathname_join(s, s1, "korean-fallback-font.ttf", len);
break;
default:
fill_pathname_application_special(s1, sizeof(s1),
APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI);
fill_pathname_join(s, s1, FILE_PATH_TTF_FONT, len);
}
fill_pathname_join(s, s1, xmb_theme_ident(), len);
}
#endif
break;

View File

@ -119,19 +119,14 @@ RETRO_BEGIN_DECLS
enum application_special_type
{
APPLICATION_SPECIAL_NONE = 0,
APPLICATION_SPECIAL_DIRECTORY_AUTOCONFIG,
APPLICATION_SPECIAL_DIRECTORY_CONFIG,
APPLICATION_SPECIAL_DIRECTORY_ASSETS_PKG,
APPLICATION_SPECIAL_DIRECTORY_ASSETS_PKG_AR_FONT,
APPLICATION_SPECIAL_DIRECTORY_ASSETS_PKG_CJK_FONT,
APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI,
APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_FONT,
APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_ICONS,
APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB,
APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_BG,
APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_ICONS,
APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_FONT,
APPLICATION_SPECIAL_DIRECTORY_ASSETS_OZONE,
APPLICATION_SPECIAL_DIRECTORY_ASSETS_OZONE_ICONS,
APPLICATION_SPECIAL_DIRECTORY_ASSETS_RGUI_FONT,
APPLICATION_SPECIAL_DIRECTORY_ASSETS_SOUNDS,

View File

@ -7729,6 +7729,8 @@ static void materialui_init_font(
{
char fontpath[PATH_MAX_LENGTH];
const char *wideglyph_str = msg_hash_get_wideglyph_str();
settings_t *settings = config_get_ptr();
const char *dir_assets = settings->paths.directory_assets;
fontpath[0] = '\0';
/* We assume the average glyph aspect ratio is close to 3:4 */
@ -7739,8 +7741,40 @@ static void materialui_init_font(
gfx_display_font_free(font_data->font);
font_data->font = NULL;
}
fill_pathname_application_special(
fontpath, sizeof(fontpath), APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_FONT);
{
char s1[PATH_MAX_LENGTH];
s1[0] = '\0';
switch (*msg_hash_get_uint(MSG_HASH_USER_LANGUAGE))
{
case RETRO_LANGUAGE_ARABIC:
case RETRO_LANGUAGE_PERSIAN:
fill_pathname_application_special(s1, sizeof(s1),
APPLICATION_SPECIAL_DIRECTORY_ASSETS_PKG);
fill_pathname_join(fontpath, s1, "fallback-font.ttf",
sizeof(fontpath));
break;
case RETRO_LANGUAGE_CHINESE_SIMPLIFIED:
case RETRO_LANGUAGE_CHINESE_TRADITIONAL:
fill_pathname_application_special(s1, sizeof(s1),
APPLICATION_SPECIAL_DIRECTORY_ASSETS_PKG);
fill_pathname_join(fontpath, s1, "chinese-fallback-font.ttf",
sizeof(fontpath));
break;
case RETRO_LANGUAGE_KOREAN:
fill_pathname_application_special(s1, sizeof(s1),
APPLICATION_SPECIAL_DIRECTORY_ASSETS_PKG);
fill_pathname_join(fontpath, s1, "korean-fallback-font.ttf",
sizeof(fontpath));
break;
default:
fill_pathname_join(s1, dir_assets, "glui", sizeof(s1));
fill_pathname_join(fontpath, s1, FILE_PATH_TTF_FONT,
sizeof(fontpath));
break;
}
}
font_data->font = gfx_display_font_file(p_disp,
fontpath, font_size, video_is_threaded);
@ -7926,6 +7960,7 @@ static void *materialui_init(void **userdata, bool video_is_threaded)
gfx_display_t *p_disp = disp_get_ptr();
menu_handle_t *menu = (menu_handle_t*)
calloc(1, sizeof(*menu));
const char *dir_assets = NULL;
if (!menu)
return NULL;
@ -7936,17 +7971,15 @@ static void *materialui_init(void **userdata, bool video_is_threaded)
return NULL;
}
mui = (materialui_handle_t*)
calloc(1, sizeof(materialui_handle_t));
dir_assets = settings->paths.directory_assets;
if (!mui)
if (!(mui = (materialui_handle_t*)calloc(1, sizeof(materialui_handle_t))))
goto error;
*userdata = mui;
/* Initialise thumbnail path data */
mui->thumbnail_path_data = gfx_thumbnail_path_init();
if (!mui->thumbnail_path_data)
if (!(mui->thumbnail_path_data = gfx_thumbnail_path_init()))
goto error;
/* Get DPI/screen-size-aware base unit size for
@ -7986,8 +8019,7 @@ static void *materialui_init(void **userdata, bool video_is_threaded)
materialui_prepare_colors(mui, (enum materialui_color_theme)mui->color_theme);
/* Initialise screensaver */
mui->screensaver = menu_screensaver_init();
if (!mui->screensaver)
if (!(mui->screensaver = menu_screensaver_init()))
goto error;
/* Initial ticker configuration */
@ -8052,14 +8084,13 @@ static void *materialui_init(void **userdata, bool video_is_threaded)
fill_pathname_application_special(mui->sysicons_path,
sizeof(mui->sysicons_path),
APPLICATION_SPECIAL_DIRECTORY_ASSETS_OZONE_ICONS);
fill_pathname_application_special(mui->icons_path,
sizeof(mui->icons_path),
APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI);
fill_pathname_join(mui->icons_path, dir_assets, "glui",
sizeof(mui->icons_path));
p_anim->updatetime_cb = materialui_menu_animation_update_time;
/* set word_wrap function pointer */
mui->word_wrap = msg_hash_get_wideglyph_str() ? word_wrap_wideglyph : word_wrap;
mui->word_wrap = msg_hash_get_wideglyph_str() ? word_wrap_wideglyph : word_wrap;
return menu;
error: