summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorVolker Krause <volker.krause@kdab.com>2016-05-28 13:29:20 +0200
committerSean Harmer <sean.harmer@kdab.com>2016-05-28 13:47:43 +0000
commit469dbd4dbbba4c51402cc182e7680dc879b824ae (patch)
tree89ebf76e3949884ce6b6d4f51f8306d5891d9f28 /src/plugins
parent7f83c2b364291ace6ff9180512787ce69e5999cc (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.cpp6
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) {