From 0fc0d50bdaa7b8114d637ffdb3047d8e0b392840 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Tue, 18 Mar 2014 17:19:42 -0700 Subject: [PATCH] Only post the blender if we have blendable meshes to blend. --- interface/src/renderer/FBXReader.cpp | 9 +++++++++ interface/src/renderer/FBXReader.h | 2 ++ interface/src/renderer/Model.cpp | 4 +++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/interface/src/renderer/FBXReader.cpp b/interface/src/renderer/FBXReader.cpp index 22cd44408e..53f4e04b0b 100644 --- a/interface/src/renderer/FBXReader.cpp +++ b/interface/src/renderer/FBXReader.cpp @@ -54,6 +54,15 @@ QStringList FBXGeometry::getJointNames() const { return names; } +bool FBXGeometry::hasBlendedMeshes() const { + foreach (const FBXMesh& mesh, meshes) { + if (!mesh.blendshapes.isEmpty()) { + return true; + } + } + return false; +} + static int fbxGeometryMetaTypeId = qRegisterMetaType(); template QVariant readBinaryArray(QDataStream& in) { diff --git a/interface/src/renderer/FBXReader.h b/interface/src/renderer/FBXReader.h index ead75e6517..5f6a4f51ba 100644 --- a/interface/src/renderer/FBXReader.h +++ b/interface/src/renderer/FBXReader.h @@ -181,6 +181,8 @@ public: int getJointIndex(const QString& name) const { return jointIndices.value(name) - 1; } QStringList getJointNames() const; + + bool hasBlendedMeshes() const; }; Q_DECLARE_METATYPE(FBXGeometry) diff --git a/interface/src/renderer/Model.cpp b/interface/src/renderer/Model.cpp index 591cc4a021..16b5c167d9 100644 --- a/interface/src/renderer/Model.cpp +++ b/interface/src/renderer/Model.cpp @@ -610,7 +610,9 @@ void Model::simulate(float deltaTime, bool fullUpdate, const QVector } // post the blender - QThreadPool::globalInstance()->start(new Blender(this, _geometry, geometry.meshes, _blendshapeCoefficients)); + if (geometry.hasBlendedMeshes()) { + QThreadPool::globalInstance()->start(new Blender(this, _geometry, geometry.meshes, _blendshapeCoefficients)); + } } void Model::updateJointState(int index) {