History

cleaning more code

Sam Gateau committed 9 years ago

Commit 390f5b51 parent c11f46a2 files · +31 −42Browse files

Showing the changes to libraries/render-utils/src/Model.cpp (1 of 2 files). Show all

Unified · Split

libraries/render-utils/src/Model.cpp+12−18
@@ -218,7 +218,6 @@ void Model::updateRenderItems() { · 217 unmodified lines
218218 _needsUpdateClusterMatrices = true;
219219 _renderItemsNeedUpdate = false;
220220
221−
222221 // queue up this work for later processing, at the end of update and just before rendering.
223222 // the application will ensure only the last lambda is actually invoked.
224223 void* key = (void*)this;
@@ -227,7 +226,7 @@ void Model::updateRenderItems() { · 2 unmodified lines
227226
228227 // do nothing, if the model has already been destroyed.
229228 auto self = weakSelf.lock();
230− if (!self) {
229+ if (!self || !self->isLoaded()) {
231230 return;
232231 }
233232
@@ -238,26 +237,21 @@ void Model::updateRenderItems() { · 4 unmodified lines
238237 Transform modelTransform = self->getTransform();
239238 modelTransform.setScale(glm::vec3(1.0f));
240239
241− uint32_t deleteGeometryCounter = self->_deleteGeometryCounter;
242−
243240 render::Transaction transaction;
244241 for (int i = 0; i < self->_modelMeshRenderItemIDs.size(); i++) {
242+
245243 auto itemID = self->_modelMeshRenderItemIDs[i];
246244 auto meshIndex = self->_modelMeshRenderItemShapes[i].meshIndex;
247− if (self && self->isLoaded()) {
248− const Model::MeshState& state = self->getMeshState(meshIndex);
249− auto clusterMatrices(state.clusterMatrices);
250−
251− transaction.updateItem<ModelMeshPartPayload>(itemID, [deleteGeometryCounter, modelTransform, clusterMatrices](ModelMeshPartPayload& data) {
252− data.updateClusterBuffer(clusterMatrices);
253−
254− Transform renderTransform = modelTransform;
255− if (clusterMatrices.size() == 1) {
256− renderTransform = modelTransform.worldTransform(Transform(clusterMatrices[0]));
257− }
258− data.updateTransformForSkinnedMesh(renderTransform, modelTransform);
259− });
260− }
245+ auto clusterMatrices(self->getMeshState(meshIndex).clusterMatrices);
246+
247+ transaction.updateItem<ModelMeshPartPayload>(itemID, [modelTransform, clusterMatrices](ModelMeshPartPayload& data) {
248+ data.updateClusterBuffer(clusterMatrices);
249+ Transform renderTransform = modelTransform;
250+ if (clusterMatrices.size() == 1) {
251+ renderTransform = modelTransform.worldTransform(Transform(clusterMatrices[0]));
252+ }
253+ data.updateTransformForSkinnedMesh(renderTransform, modelTransform);
254+ });
261255 }
262256
263257 Transform collisionMeshOffset;