From 2fee37f31b3bf0d8d47f16ecd68534b4691b7868 Mon Sep 17 00:00:00 2001 From: Lars Mueller Date: Tue, 8 Oct 2024 16:43:45 +0200 Subject: [PATCH] Fix gltf / glb loader oversights - Avoid an unnecessary copy - Reject models requiring extensions Co-authored-by: DS --- irr/src/CGLTFMeshFileLoader.cpp | 5 +++++ irr/src/CGLTFMeshFileLoader.h | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/irr/src/CGLTFMeshFileLoader.cpp b/irr/src/CGLTFMeshFileLoader.cpp index aee98b2e6..8ac96d4f4 100644 --- a/irr/src/CGLTFMeshFileLoader.cpp +++ b/irr/src/CGLTFMeshFileLoader.cpp @@ -320,6 +320,11 @@ IAnimatedMesh* SelfType::createMesh(io::IReadFile* file) if (!model.has_value()) { return nullptr; } + if (model->extensionsRequired) { + os::Printer::log("glTF loader", + "model requires extensions, but we support none", ELL_ERROR); + return nullptr; + } if (!(model->buffers.has_value() && model->bufferViews.has_value() diff --git a/irr/src/CGLTFMeshFileLoader.h b/irr/src/CGLTFMeshFileLoader.h index 39c3ea6dd..da306769e 100644 --- a/irr/src/CGLTFMeshFileLoader.h +++ b/irr/src/CGLTFMeshFileLoader.h @@ -98,7 +98,7 @@ private: public: MeshExtractor(tiniergltf::GlTF &&model, CSkinnedMesh *mesh) noexcept - : m_gltf_model(model), m_irr_model(mesh) {}; + : m_gltf_model(std::move(model)), m_irr_model(mesh) {}; /* Gets indices for the given mesh/primitive. *