mirror of
https://github.com/godotengine/godot.git
synced 2026-01-03 18:11:19 +03:00
Use system fonts as fallback and improve system font handling.
Add support for font weight and stretch selection when using system fonts. Add function to get system fallback font from a font name, style, text, and language code. Implement system font support for Android. Use system fonts as a last resort fallback.
This commit is contained in:
@@ -469,6 +469,8 @@ void DynamicFontImportSettings::_main_prop_changed(const String &p_edited_proper
|
||||
font_preview->set_msdf_pixel_range(import_settings_data->get("msdf_pixel_range"));
|
||||
} else if (p_edited_property == "msdf_size") {
|
||||
font_preview->set_msdf_size(import_settings_data->get("msdf_size"));
|
||||
} else if (p_edited_property == "allow_system_fallback") {
|
||||
font_preview->set_allow_system_fallback(import_settings_data->get("allow_system_fallback"));
|
||||
} else if (p_edited_property == "force_autohinter") {
|
||||
font_preview->set_force_autohinter(import_settings_data->get("force_autohinter"));
|
||||
} else if (p_edited_property == "hinting") {
|
||||
@@ -936,6 +938,7 @@ void DynamicFontImportSettings::_re_import() {
|
||||
main_settings["multichannel_signed_distance_field"] = import_settings_data->get("multichannel_signed_distance_field");
|
||||
main_settings["msdf_pixel_range"] = import_settings_data->get("msdf_pixel_range");
|
||||
main_settings["msdf_size"] = import_settings_data->get("msdf_size");
|
||||
main_settings["allow_system_fallback"] = import_settings_data->get("allow_system_fallback");
|
||||
main_settings["force_autohinter"] = import_settings_data->get("force_autohinter");
|
||||
main_settings["hinting"] = import_settings_data->get("hinting");
|
||||
main_settings["subpixel_positioning"] = import_settings_data->get("subpixel_positioning");
|
||||
@@ -1036,7 +1039,7 @@ void DynamicFontImportSettings::_process_locales() {
|
||||
|
||||
void DynamicFontImportSettings::open_settings(const String &p_path) {
|
||||
// Load base font data.
|
||||
Vector<uint8_t> font_data = FileAccess::get_file_as_array(p_path);
|
||||
Vector<uint8_t> font_data = FileAccess::get_file_as_bytes(p_path);
|
||||
|
||||
// Load project locale list.
|
||||
locale_tree->clear();
|
||||
@@ -1202,6 +1205,7 @@ void DynamicFontImportSettings::open_settings(const String &p_path) {
|
||||
font_preview->set_multichannel_signed_distance_field(import_settings_data->get("multichannel_signed_distance_field"));
|
||||
font_preview->set_msdf_pixel_range(import_settings_data->get("msdf_pixel_range"));
|
||||
font_preview->set_msdf_size(import_settings_data->get("msdf_size"));
|
||||
font_preview->set_allow_system_fallback(import_settings_data->get("allow_system_fallback"));
|
||||
font_preview->set_force_autohinter(import_settings_data->get("force_autohinter"));
|
||||
font_preview->set_hinting((TextServer::Hinting)import_settings_data->get("hinting").operator int());
|
||||
font_preview->set_subpixel_positioning((TextServer::SubpixelPositioning)import_settings_data->get("subpixel_positioning").operator int());
|
||||
@@ -1232,6 +1236,7 @@ DynamicFontImportSettings::DynamicFontImportSettings() {
|
||||
options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::BOOL, "multichannel_signed_distance_field", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED), true));
|
||||
options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::INT, "msdf_pixel_range", PROPERTY_HINT_RANGE, "1,100,1"), 8));
|
||||
options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::INT, "msdf_size", PROPERTY_HINT_RANGE, "1,250,1"), 48));
|
||||
options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::BOOL, "allow_system_fallback"), true));
|
||||
options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::BOOL, "force_autohinter"), false));
|
||||
options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::INT, "hinting", PROPERTY_HINT_ENUM, "None,Light,Normal"), 1));
|
||||
options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::INT, "subpixel_positioning", PROPERTY_HINT_ENUM, "Disabled,Auto,One Half of a Pixel,One Quarter of a Pixel"), 1));
|
||||
|
||||
Reference in New Issue
Block a user