diff options
author | Volker Krause <volker.krause@kdab.com> | 2016-05-28 13:29:20 +0200 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-05-28 13:47:43 +0000 |
commit | 469dbd4dbbba4c51402cc182e7680dc879b824ae (patch) | |
tree | 89ebf76e3949884ce6b6d4f51f8306d5891d9f28 /src/plugins | |
parent | 7f83c2b364291ace6ff9180512787ce69e5999cc (diff) |
Fix crash when a referenced shader program isn't found in a gltf file.
This makes tests/manual/gltf start at least (but still not render
anything).
Change-Id: I828ba32d79aebf6b9081bd58071f394cba910cb9
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/sceneparsers/gltf/gltfio.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/plugins/sceneparsers/gltf/gltfio.cpp b/src/plugins/sceneparsers/gltf/gltfio.cpp index 68d43dc1b..1ae462e64 100644 --- a/src/plugins/sceneparsers/gltf/gltfio.cpp +++ b/src/plugins/sceneparsers/gltf/gltfio.cpp @@ -985,16 +985,16 @@ void GLTFIO::processJSONTechnique(const QString &id, const QJsonObject &jsonObje } // of parameters iteration // Program + QRenderPass* pass = new QRenderPass; QString programName = jsonObject.value(KEY_PROGRAM).toString(); const auto progIt = qAsConst(m_programs).find(programName); if (Q_UNLIKELY(progIt == m_programs.cend())) { qCWarning(GLTFIOLog, "technique %ls: missing program %ls", qUtf16PrintableImpl(id), qUtf16PrintableImpl(programName)); + } else { + pass->setShaderProgram(progIt.value()); } - QRenderPass* pass = new QRenderPass; - pass->setShaderProgram(progIt.value()); - // Attributes const QJsonObject attrs = jsonObject.value(KEY_ATTRIBUTES).toObject(); for (auto it = attrs.begin(), end = attrs.end(); it != end; ++it) { |