Remove exception on glTF 2.0 loading

pull/4693/head
vkaytsanov 2022-08-16 15:52:43 +03:00
parent bd64cc88df
commit d469c7b161
3 changed files with 8 additions and 7 deletions

View File

@ -903,8 +903,10 @@ struct AssetMetadata {
void Read(Document &doc); void Read(Document &doc);
AssetMetadata() : AssetMetadata() :
premultipliedAlpha(false), version() { premultipliedAlpha(false) {
} }
operator bool() const { return version.size() && version[0] == '1'; }
}; };
// //

View File

@ -1114,10 +1114,6 @@ inline void AssetMetadata::Read(Document &doc) {
ReadMember(*curProfile, "version", this->profile.version); ReadMember(*curProfile, "version", this->profile.version);
} }
} }
if (version.empty() || version[0] != '1') {
throw DeadlyImportError("GLTF: Unsupported glTF version: ", version);
}
} }
// //
@ -1222,6 +1218,10 @@ inline void Asset::Load(const std::string &pFile, bool isBinary) {
// Load the metadata // Load the metadata
asset.Read(doc); asset.Read(doc);
if (!asset) {
return;
}
ReadExtensionsUsed(doc); ReadExtensionsUsed(doc);
// Prepare the dictionaries // Prepare the dictionaries

View File

@ -96,8 +96,7 @@ bool glTFImporter::CanRead(const std::string &pFile, IOSystem *pIOHandler, bool
glTF::Asset asset(pIOHandler); glTF::Asset asset(pIOHandler);
try { try {
asset.Load(pFile, GetExtension(pFile) == "glb"); asset.Load(pFile, GetExtension(pFile) == "glb");
std::string version = asset.asset.version; return asset.asset;
return !version.empty() && version[0] == '1';
} catch (...) { } catch (...) {
return false; return false;
} }