Merge pull request #98664 from bruvzg/ts_reset_subpixel_shift
[TextServer] Reset subpixel shift on blank glyphs.
This commit is contained in:
@ -494,6 +494,8 @@ void DynamicFontImportSettingsDialog::_main_prop_changed(const String &p_edited_
|
||||
font_preview->set_hinting((TextServer::Hinting)import_settings_data->get("hinting").operator int());
|
||||
} else if (p_edited_property == "subpixel_positioning") {
|
||||
font_preview->set_subpixel_positioning((TextServer::SubpixelPositioning)import_settings_data->get("subpixel_positioning").operator int());
|
||||
} else if (p_edited_property == "keep_rounding_remainders") {
|
||||
font_preview->set_keep_rounding_remainders(import_settings_data->get("keep_rounding_remainders"));
|
||||
} else if (p_edited_property == "oversampling") {
|
||||
font_preview->set_oversampling(import_settings_data->get("oversampling"));
|
||||
}
|
||||
@ -960,6 +962,7 @@ void DynamicFontImportSettingsDialog::_re_import() {
|
||||
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");
|
||||
main_settings["keep_rounding_remainders"] = import_settings_data->get("keep_rounding_remainders");
|
||||
main_settings["oversampling"] = import_settings_data->get("oversampling");
|
||||
main_settings["fallbacks"] = import_settings_data->get("fallbacks");
|
||||
main_settings["compress"] = import_settings_data->get("compress");
|
||||
@ -1236,6 +1239,7 @@ void DynamicFontImportSettingsDialog::open_settings(const String &p_path) {
|
||||
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());
|
||||
font_preview->set_keep_rounding_remainders(import_settings_data->get("keep_rounding_remainders"));
|
||||
font_preview->set_oversampling(import_settings_data->get("oversampling"));
|
||||
}
|
||||
font_preview_label->add_theme_font_override(SceneStringName(font), font_preview);
|
||||
@ -1268,6 +1272,7 @@ DynamicFontImportSettingsDialog::DynamicFontImportSettingsDialog() {
|
||||
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));
|
||||
options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::BOOL, "keep_rounding_remainders"), true));
|
||||
options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::FLOAT, "oversampling", PROPERTY_HINT_RANGE, "0,10,0.1"), 0.0));
|
||||
|
||||
options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::NIL, "Metadata Overrides", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_GROUP), Variant()));
|
||||
|
||||
@ -85,6 +85,9 @@ bool ResourceImporterDynamicFont::get_option_visibility(const String &p_path, co
|
||||
if (p_option == "subpixel_positioning" && bool(p_options["multichannel_signed_distance_field"])) {
|
||||
return false;
|
||||
}
|
||||
if (p_option == "keep_rounding_remainders" && bool(p_options["multichannel_signed_distance_field"])) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -119,6 +122,7 @@ void ResourceImporterDynamicFont::get_import_options(const String &p_path, List<
|
||||
r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "force_autohinter"), false));
|
||||
r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "hinting", PROPERTY_HINT_ENUM, "None,Light,Normal"), 1));
|
||||
r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "subpixel_positioning", PROPERTY_HINT_ENUM, "Disabled,Auto,One Half of a Pixel,One Quarter of a Pixel,Auto (Except Pixel Fonts)"), 4));
|
||||
r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "keep_rounding_remainders"), true));
|
||||
r_options->push_back(ImportOption(PropertyInfo(Variant::FLOAT, "oversampling", PROPERTY_HINT_RANGE, "0,10,0.1"), 0.0));
|
||||
|
||||
r_options->push_back(ImportOption(PropertyInfo(Variant::NIL, "Fallbacks", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_GROUP), Variant()));
|
||||
@ -156,6 +160,7 @@ Error ResourceImporterDynamicFont::import(ResourceUID::ID p_source_id, const Str
|
||||
bool allow_system_fallback = p_options["allow_system_fallback"];
|
||||
int hinting = p_options["hinting"];
|
||||
int subpixel_positioning = p_options["subpixel_positioning"];
|
||||
bool keep_rounding_remainders = p_options["keep_rounding_remainders"];
|
||||
real_t oversampling = p_options["oversampling"];
|
||||
Array fallbacks = p_options["fallbacks"];
|
||||
|
||||
@ -213,6 +218,7 @@ Error ResourceImporterDynamicFont::import(ResourceUID::ID p_source_id, const Str
|
||||
}
|
||||
}
|
||||
font->set_subpixel_positioning((TextServer::SubpixelPositioning)subpixel_positioning);
|
||||
font->set_keep_rounding_remainders(keep_rounding_remainders);
|
||||
|
||||
Dictionary langs = p_options["language_support"];
|
||||
for (int i = 0; i < langs.size(); i++) {
|
||||
|
||||
@ -112,6 +112,7 @@ Error ResourceImporterImageFont::import(ResourceUID::ID p_source_id, const Strin
|
||||
font->set_multichannel_signed_distance_field(false);
|
||||
font->set_fixed_size(chr_height);
|
||||
font->set_subpixel_positioning(TextServer::SUBPIXEL_POSITIONING_DISABLED);
|
||||
font->set_keep_rounding_remainders(true);
|
||||
font->set_force_autohinter(false);
|
||||
font->set_allow_system_fallback(false);
|
||||
font->set_hinting(TextServer::HINTING_NONE);
|
||||
|
||||
Reference in New Issue
Block a user