You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-05 12:10:55 +00:00
[Android] Skip non-existing system font files.
This commit is contained in:
@@ -454,6 +454,9 @@ void OS_Android::_load_system_font_config() const {
|
|||||||
Ref<XMLParser> parser;
|
Ref<XMLParser> parser;
|
||||||
parser.instantiate();
|
parser.instantiate();
|
||||||
|
|
||||||
|
Ref<DirAccess> da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
|
||||||
|
String root = String(getenv("ANDROID_ROOT")).path_join("fonts");
|
||||||
|
|
||||||
Error err = parser->open(String(getenv("ANDROID_ROOT")).path_join("/etc/fonts.xml"));
|
Error err = parser->open(String(getenv("ANDROID_ROOT")).path_join("/etc/fonts.xml"));
|
||||||
if (err == OK) {
|
if (err == OK) {
|
||||||
bool in_font_node = false;
|
bool in_font_node = false;
|
||||||
@@ -530,20 +533,22 @@ void OS_Android::_load_system_font_config() const {
|
|||||||
if (in_font_node) {
|
if (in_font_node) {
|
||||||
fi.filename = parser->get_node_data().strip_edges();
|
fi.filename = parser->get_node_data().strip_edges();
|
||||||
fi.font_name = fn;
|
fi.font_name = fn;
|
||||||
if (!fb.is_empty() && fn.is_empty()) {
|
if (da->file_exists(root.path_join(fi.filename))) {
|
||||||
fi.font_name = fb;
|
if (!fb.is_empty() && fn.is_empty()) {
|
||||||
fi.priority = 2;
|
fi.font_name = fb;
|
||||||
|
fi.priority = 2;
|
||||||
|
}
|
||||||
|
if (fi.font_name.is_empty()) {
|
||||||
|
fi.font_name = "sans-serif";
|
||||||
|
fi.priority = 5;
|
||||||
|
}
|
||||||
|
if (fi.font_name.ends_with("-condensed")) {
|
||||||
|
fi.stretch = 75;
|
||||||
|
fi.font_name = fi.font_name.trim_suffix("-condensed");
|
||||||
|
}
|
||||||
|
fonts.push_back(fi);
|
||||||
|
font_names.insert(fi.font_name);
|
||||||
}
|
}
|
||||||
if (fi.font_name.is_empty()) {
|
|
||||||
fi.font_name = "sans-serif";
|
|
||||||
fi.priority = 5;
|
|
||||||
}
|
|
||||||
if (fi.font_name.ends_with("-condensed")) {
|
|
||||||
fi.stretch = 75;
|
|
||||||
fi.font_name = fi.font_name.trim_suffix("-condensed");
|
|
||||||
}
|
|
||||||
fonts.push_back(fi);
|
|
||||||
font_names.insert(fi.font_name);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (parser->get_node_type() == XMLParser::NODE_ELEMENT_END) {
|
if (parser->get_node_type() == XMLParser::NODE_ELEMENT_END) {
|
||||||
|
|||||||
Reference in New Issue
Block a user