cleaning more code

This commit is contained in:
Sam Gateau 2017-11-02 23:55:44 -07:00
parent c11f46a8d3
commit 390f5b53ca
2 changed files with 27 additions and 38 deletions

View file

@ -165,7 +165,7 @@ void CauterizedModel::updateRenderItems() {
AbstractViewStateInterface::instance()->pushPostUpdateLambda(key, [weakSelf]() { AbstractViewStateInterface::instance()->pushPostUpdateLambda(key, [weakSelf]() {
// do nothing, if the model has already been destroyed. // do nothing, if the model has already been destroyed.
auto self = weakSelf.lock(); auto self = weakSelf.lock();
if (!self) { if (!self || !self->isLoaded()) {
return; return;
} }
@ -179,19 +179,14 @@ void CauterizedModel::updateRenderItems() {
modelTransform.setRotation(self->getRotation()); modelTransform.setRotation(self->getRotation());
render::Transaction transaction; render::Transaction transaction;
QList<render::ItemID> keys = self->getRenderItems().keys();
int meshIndex{ 0 };
for (int i = 0; i < self->_modelMeshRenderItemIDs.size(); i++) { for (int i = 0; i < self->_modelMeshRenderItemIDs.size(); i++) {
auto itemID = self->_modelMeshRenderItemIDs[i]; auto itemID = self->_modelMeshRenderItemIDs[i];
auto meshIndex = self->_modelMeshRenderItemShapes[i].meshIndex; auto meshIndex = self->_modelMeshRenderItemShapes[i].meshIndex;
auto clusterMatrices(self->getMeshState(meshIndex).clusterMatrices);
auto clusterMatricesCauterized(self->getCauterizeMeshState(meshIndex).clusterMatrices);
const Model::MeshState& state = self->getMeshState(meshIndex); transaction.updateItem<CauterizedMeshPartPayload>(itemID, [modelTransform, clusterMatrices, clusterMatricesCauterized](CauterizedMeshPartPayload& data) {
auto clusterMatrices(state.clusterMatrices);
const Model::MeshState& cState = self->getCauterizeMeshState(meshIndex);
auto clusterMatricesCauterized(cState.clusterMatrices);
transaction.updateItem<CauterizedMeshPartPayload>(itemID,
[modelTransform, clusterMatrices, clusterMatricesCauterized](CauterizedMeshPartPayload& data) {
data.updateClusterBuffer(clusterMatrices, clusterMatricesCauterized); data.updateClusterBuffer(clusterMatrices, clusterMatricesCauterized);
Transform renderTransform = modelTransform; Transform renderTransform = modelTransform;

View file

@ -218,7 +218,6 @@ void Model::updateRenderItems() {
_needsUpdateClusterMatrices = true; _needsUpdateClusterMatrices = true;
_renderItemsNeedUpdate = false; _renderItemsNeedUpdate = false;
// queue up this work for later processing, at the end of update and just before rendering. // queue up this work for later processing, at the end of update and just before rendering.
// the application will ensure only the last lambda is actually invoked. // the application will ensure only the last lambda is actually invoked.
void* key = (void*)this; void* key = (void*)this;
@ -227,7 +226,7 @@ void Model::updateRenderItems() {
// do nothing, if the model has already been destroyed. // do nothing, if the model has already been destroyed.
auto self = weakSelf.lock(); auto self = weakSelf.lock();
if (!self) { if (!self || !self->isLoaded()) {
return; return;
} }
@ -238,19 +237,15 @@ void Model::updateRenderItems() {
Transform modelTransform = self->getTransform(); Transform modelTransform = self->getTransform();
modelTransform.setScale(glm::vec3(1.0f)); modelTransform.setScale(glm::vec3(1.0f));
uint32_t deleteGeometryCounter = self->_deleteGeometryCounter;
render::Transaction transaction; render::Transaction transaction;
for (int i = 0; i < self->_modelMeshRenderItemIDs.size(); i++) { for (int i = 0; i < self->_modelMeshRenderItemIDs.size(); i++) {
auto itemID = self->_modelMeshRenderItemIDs[i]; auto itemID = self->_modelMeshRenderItemIDs[i];
auto meshIndex = self->_modelMeshRenderItemShapes[i].meshIndex; auto meshIndex = self->_modelMeshRenderItemShapes[i].meshIndex;
if (self && self->isLoaded()) { auto clusterMatrices(self->getMeshState(meshIndex).clusterMatrices);
const Model::MeshState& state = self->getMeshState(meshIndex);
auto clusterMatrices(state.clusterMatrices);
transaction.updateItem<ModelMeshPartPayload>(itemID, [deleteGeometryCounter, modelTransform, clusterMatrices](ModelMeshPartPayload& data) { transaction.updateItem<ModelMeshPartPayload>(itemID, [modelTransform, clusterMatrices](ModelMeshPartPayload& data) {
data.updateClusterBuffer(clusterMatrices); data.updateClusterBuffer(clusterMatrices);
Transform renderTransform = modelTransform; Transform renderTransform = modelTransform;
if (clusterMatrices.size() == 1) { if (clusterMatrices.size() == 1) {
renderTransform = modelTransform.worldTransform(Transform(clusterMatrices[0])); renderTransform = modelTransform.worldTransform(Transform(clusterMatrices[0]));
@ -258,7 +253,6 @@ void Model::updateRenderItems() {
data.updateTransformForSkinnedMesh(renderTransform, modelTransform); data.updateTransformForSkinnedMesh(renderTransform, modelTransform);
}); });
} }
}
Transform collisionMeshOffset; Transform collisionMeshOffset;
collisionMeshOffset.setIdentity(); collisionMeshOffset.setIdentity();