Showing the changes to libraries/render-utils/src/Model.cpp (1 of 1 file). Show all
Unified · Split
| @@ -1071,18 +1071,21 @@ float Model::getLimbLength(int jointIndex) const { · 1070 unmodified lines | ||
| 1071 | 1071 | } |
| 1072 | 1072 | |
| 1073 | 1073 | bool Model::maybeStartBlender() { |
| 1074 | − const FBXGeometry& fbxGeometry = getFBXGeometry(); | |
| 1075 | − if (fbxGeometry.hasBlendedMeshes()) { | |
| 1076 | − QThreadPool::globalInstance()->start(new Blender(getThisPointer(), ++_blendNumber, _geometry, | |
| 1077 | − fbxGeometry.meshes, _blendshapeCoefficients)); | |
| 1078 | − return true; | |
| 1074 | + if (isLoaded()) { | |
| 1075 | + const FBXGeometry& fbxGeometry = getFBXGeometry(); | |
| 1076 | + if (fbxGeometry.hasBlendedMeshes()) { | |
| 1077 | + QThreadPool::globalInstance()->start(new Blender(getThisPointer(), ++_blendNumber, _geometry, | |
| 1078 | + fbxGeometry.meshes, _blendshapeCoefficients)); | |
| 1079 | + return true; | |
| 1080 | + } | |
| 1079 | 1081 | } |
| 1080 | 1082 | return false; |
| 1081 | 1083 | } |
| 1082 | 1084 | |
| 1083 | 1085 | void Model::setBlendedVertices(int blendNumber, const std::weak_ptr<NetworkGeometry>& geometry, |
| 1084 | 1086 | const QVector<glm::vec3>& vertices, const QVector<glm::vec3>& normals) { |
| 1085 | − if (_geometry != geometry.lock() || _blendedVertexBuffers.empty() || blendNumber < _appliedBlendNumber) { | |
| 1087 | + auto geometryRef = geometry.lock(); | |
| 1088 | + if (!geometryRef || _geometry != geometryRef || _blendedVertexBuffers.empty() || blendNumber < _appliedBlendNumber) { | |
| 1086 | 1089 | return; |
| 1087 | 1090 | } |
| 1088 | 1091 | _appliedBlendNumber = blendNumber; |