Handle gltf binary

[ Ignore and Warn | Extract Textures (default) | Optimize Loading Embedded as Basisu ]

Enable compressed mip maps from Basis Universal for faster compressions.

Increase the quality of Basis to avoid corruption.

To keep compatibility use the first mip of the previous internal Godot format.

Because texture names may have invalid filename characters, adds String::validate_filename to sanitize filenames for import pipeline use.
This commit is contained in:
K. S. Ernest (iFire) Lee
2022-07-18 17:58:27 -07:00
committed by Lyuma
parent d1e5903c67
commit 39922d7167
15 changed files with 241 additions and 55 deletions

View File

@ -4342,6 +4342,9 @@ bool String::is_valid_html_color() const {
return Color::html_is_valid(*this);
}
// Changes made to the set of invalid filename characters must also be reflected in the String documentation for is_valid_filename.
static const char *invalid_filename_characters = ": / \\ ? * \" | % < >";
bool String::is_valid_filename() const {
String stripped = strip_edges();
if (*this != stripped) {
@ -4352,7 +4355,22 @@ bool String::is_valid_filename() const {
return false;
}
return !(find(":") != -1 || find("/") != -1 || find("\\") != -1 || find("?") != -1 || find("*") != -1 || find("\"") != -1 || find("|") != -1 || find("%") != -1 || find("<") != -1 || find(">") != -1);
Vector<String> chars = String(invalid_filename_characters).split(" ");
for (const String &ch : chars) {
if (contains(ch)) {
return false;
}
}
return true;
}
String String::validate_filename() const {
Vector<String> chars = String(invalid_filename_characters).split(" ");
String name = strip_edges();
for (int i = 0; i < chars.size(); i++) {
name = name.replace(chars[i], "_");
}
return name;
}
bool String::is_valid_ip_address() const {