more updates

This commit is contained in:
HifiExperiments 2020-10-12 22:31:39 -07:00
parent 5a8c1a0374
commit ae7a46fbca
3 changed files with 8 additions and 44 deletions

View file

@ -1185,25 +1185,6 @@ void ModelEntityRenderer::animate(const TypedEntityPointer& entity, const ModelP
entity->copyAnimationJointDataToModel();
}
bool ModelEntityRenderer::needsRenderUpdate() const {
//ModelPointer model = resultWithReadLock<ModelPointer>([&] {
// return _model;
//});
//if (model) {
// // When the individual mesh parts of a model finish fading, they will mark their Model as needing updating
// // we will watch for that and ask the model to update it's render items
// if (model->needsReload()) {
// return true;
// }
// if (model->needsFixupInScene()) {
// return true;
// }
//}
return Parent::needsRenderUpdate();
}
bool ModelEntityRenderer::needsRenderUpdateFromTypedEntity(const TypedEntityPointer& entity) const {
if (entity->blendshapesChanged()) {
return true;
@ -1214,24 +1195,6 @@ bool ModelEntityRenderer::needsRenderUpdateFromTypedEntity(const TypedEntityPoin
return true;
}
ModelPointer model = resultWithReadLock<ModelPointer>([&] {
return _model;
});
if (model && model->isLoaded()) {
// Check to see if we need to update the model bounds
auto transform = entity->getTransform();
if (model->getTranslation() != transform.getTranslation() ||
model->getRotation() != transform.getRotation()) {
return true;
}
if (model->getScaleToFitDimensions() != entity->getScaledDimensions() ||
model->getRegistrationPoint() != entity->getRegistrationPoint()) {
return true;
}
}
return Parent::needsRenderUpdateFromTypedEntity(entity);
}
@ -1290,7 +1253,6 @@ void ModelEntityRenderer::doRenderUpdateAsynchronousTyped(const TypedEntityPoint
modelAddedToScene(entity->getEntityItemID(), NestableType::Entity, model);
}
_didLastVisualGeometryRequestSucceed = didVisualGeometryRequestSucceed;
entity->_dimensionsInitialized = false;
entity->_originalTexturesRead = false;
entity->_needsJointSimulation = true;
emit requestRenderUpdate();
@ -1440,11 +1402,13 @@ void ModelEntityRenderer::doRenderUpdateSynchronousTyped(const ScenePointer& sce
ModelPointer model = resultWithReadLock<ModelPointer>([&] {
return _model;
});
if (!_jointMappingCompleted) {
mapJoints(entity, model);
}
if (entity->readyToAnimate() && model && model->isLoaded()) {
animate(entity, model);
if (model && model->isLoaded()) {
if (!_jointMappingCompleted) {
mapJoints(entity, model);
}
if (entity->readyToAnimate()) {
animate(entity, model);
}
}
emit requestRenderUpdate();
}

View file

@ -159,7 +159,6 @@ protected:
virtual void handleBlendedVertices(int blendshapeNumber, const QVector<BlendshapeOffset>& blendshapeOffsets,
const QVector<int>& blendedMeshSizes, const render::ItemIDs& subItemIDs) override;
virtual bool needsRenderUpdate() const override;
virtual bool needsRenderUpdateFromTypedEntity(const TypedEntityPointer& entity) const override;
virtual void doRenderUpdateSynchronousTyped(const ScenePointer& scene, Transaction& transaction, const TypedEntityPointer& entity) override;
virtual void doRenderUpdateAsynchronousTyped(const TypedEntityPointer& entity) override;

View file

@ -325,6 +325,7 @@ void ModelEntityItem::setCompoundShapeURL(const QString& url) {
withWriteLock([&] {
if (_compoundShapeURL.get() != url) {
_compoundShapeURL.set(url);
_needsRenderUpdate = true;
_flags |= Simulation::DIRTY_SHAPE | Simulation::DIRTY_MASS;
}
});