Merge pull request #5154 from feuerste/gltf_binary
Improve binary check for gltf and gltf2.pull/5172/head
commit
6308de6e5b
|
@ -93,7 +93,10 @@ const aiImporterDesc *glTFImporter::GetInfo() const {
|
||||||
bool glTFImporter::CanRead(const std::string &pFile, IOSystem *pIOHandler, bool /* checkSig */) const {
|
bool glTFImporter::CanRead(const std::string &pFile, IOSystem *pIOHandler, bool /* checkSig */) const {
|
||||||
glTF::Asset asset(pIOHandler);
|
glTF::Asset asset(pIOHandler);
|
||||||
try {
|
try {
|
||||||
asset.Load(pFile, GetExtension(pFile) == "glb");
|
asset.Load(pFile,
|
||||||
|
CheckMagicToken(
|
||||||
|
pIOHandler, pFile, AI_GLB_MAGIC_NUMBER, 1, 0,
|
||||||
|
static_cast<unsigned int>(strlen(AI_GLB_MAGIC_NUMBER))));
|
||||||
return asset.asset;
|
return asset.asset;
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -697,7 +700,10 @@ void glTFImporter::InternReadFile(const std::string &pFile, aiScene *pScene, IOS
|
||||||
|
|
||||||
// read the asset file
|
// read the asset file
|
||||||
glTF::Asset asset(pIOHandler);
|
glTF::Asset asset(pIOHandler);
|
||||||
asset.Load(pFile, GetExtension(pFile) == "glb");
|
asset.Load(pFile,
|
||||||
|
CheckMagicToken(
|
||||||
|
pIOHandler, pFile, AI_GLB_MAGIC_NUMBER, 1, 0,
|
||||||
|
static_cast<unsigned int>(strlen(AI_GLB_MAGIC_NUMBER))));
|
||||||
|
|
||||||
//
|
//
|
||||||
// Copy the data out
|
// Copy the data out
|
||||||
|
|
|
@ -112,7 +112,11 @@ bool glTF2Importer::CanRead(const std::string &filename, IOSystem *pIOHandler, b
|
||||||
|
|
||||||
if (pIOHandler) {
|
if (pIOHandler) {
|
||||||
glTF2::Asset asset(pIOHandler);
|
glTF2::Asset asset(pIOHandler);
|
||||||
return asset.CanRead(filename, extension == "glb");
|
return asset.CanRead(
|
||||||
|
filename,
|
||||||
|
CheckMagicToken(
|
||||||
|
pIOHandler, filename, AI_GLB_MAGIC_NUMBER, 1, 0,
|
||||||
|
static_cast<unsigned int>(strlen(AI_GLB_MAGIC_NUMBER))));
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -1678,7 +1682,10 @@ void glTF2Importer::InternReadFile(const std::string &pFile, aiScene *pScene, IO
|
||||||
|
|
||||||
// read the asset file
|
// read the asset file
|
||||||
glTF2::Asset asset(pIOHandler, static_cast<rapidjson::IRemoteSchemaDocumentProvider *>(mSchemaDocumentProvider));
|
glTF2::Asset asset(pIOHandler, static_cast<rapidjson::IRemoteSchemaDocumentProvider *>(mSchemaDocumentProvider));
|
||||||
asset.Load(pFile, GetExtension(pFile) == "glb");
|
asset.Load(pFile,
|
||||||
|
CheckMagicToken(
|
||||||
|
pIOHandler, pFile, AI_GLB_MAGIC_NUMBER, 1, 0,
|
||||||
|
static_cast<unsigned int>(strlen(AI_GLB_MAGIC_NUMBER))));
|
||||||
if (asset.scene) {
|
if (asset.scene) {
|
||||||
pScene->mName = asset.scene->name;
|
pScene->mName = asset.scene->name;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue