Browse Source

Remove exception on glTF 2.0 loading

vkaytsanov 3 years ago
parent
commit
d469c7b161

+ 3 - 1
code/AssetLib/glTF/glTFAsset.h

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

+ 4 - 4
code/AssetLib/glTF/glTFAsset.inl

@@ -1114,10 +1114,6 @@ inline void AssetMetadata::Read(Document &doc) {
             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
     asset.Read(doc);
+    if (!asset) {
+        return;
+    }
+
     ReadExtensionsUsed(doc);
 
     // Prepare the dictionaries

+ 1 - 2
code/AssetLib/glTF/glTFImporter.cpp

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