mirror of
https://github.com/overte-org/overte.git
synced 2025-08-04 04:43:31 +02:00
cleaning more code
This commit is contained in:
parent
c11f46a8d3
commit
390f5b53ca
2 changed files with 27 additions and 38 deletions
|
@ -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,32 +179,27 @@ 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);
|
data.updateClusterBuffer(clusterMatrices, clusterMatricesCauterized);
|
||||||
const Model::MeshState& cState = self->getCauterizeMeshState(meshIndex);
|
|
||||||
auto clusterMatricesCauterized(cState.clusterMatrices);
|
|
||||||
|
|
||||||
transaction.updateItem<CauterizedMeshPartPayload>(itemID,
|
Transform renderTransform = modelTransform;
|
||||||
[modelTransform, clusterMatrices, clusterMatricesCauterized](CauterizedMeshPartPayload& data) {
|
if (clusterMatrices.size() == 1) {
|
||||||
data.updateClusterBuffer(clusterMatrices, clusterMatricesCauterized);
|
renderTransform = modelTransform.worldTransform(Transform(clusterMatrices[0]));
|
||||||
|
}
|
||||||
|
data.updateTransformForSkinnedMesh(renderTransform, modelTransform);
|
||||||
|
|
||||||
Transform renderTransform = modelTransform;
|
renderTransform = modelTransform;
|
||||||
if (clusterMatrices.size() == 1) {
|
if (clusterMatricesCauterized.size() == 1) {
|
||||||
renderTransform = modelTransform.worldTransform(Transform(clusterMatrices[0]));
|
renderTransform = modelTransform.worldTransform(Transform(clusterMatricesCauterized[0]));
|
||||||
}
|
}
|
||||||
data.updateTransformForSkinnedMesh(renderTransform, modelTransform);
|
data.updateTransformForCauterizedMesh(renderTransform);
|
||||||
|
|
||||||
renderTransform = modelTransform;
|
|
||||||
if (clusterMatricesCauterized.size() == 1) {
|
|
||||||
renderTransform = modelTransform.worldTransform(Transform(clusterMatricesCauterized[0]));
|
|
||||||
}
|
|
||||||
data.updateTransformForCauterizedMesh(renderTransform);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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,26 +237,21 @@ 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]));
|
}
|
||||||
}
|
data.updateTransformForSkinnedMesh(renderTransform, modelTransform);
|
||||||
data.updateTransformForSkinnedMesh(renderTransform, modelTransform);
|
});
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Transform collisionMeshOffset;
|
Transform collisionMeshOffset;
|
||||||
|
|
Loading…
Reference in a new issue