mirror of
https://github.com/overte-org/overte.git
synced 2025-04-20 04:44:11 +02:00
trying to fix model issue
This commit is contained in:
parent
215193ad90
commit
3a6e84e681
4 changed files with 8 additions and 17 deletions
|
@ -1032,10 +1032,6 @@ bool ModelEntityRenderer::needsRenderUpdate() const {
|
|||
model = _model;
|
||||
});
|
||||
|
||||
if (_modelJustLoaded) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (model) {
|
||||
if (_needsJointSimulation || _moving || _animating) {
|
||||
return true;
|
||||
|
@ -1149,14 +1145,15 @@ void ModelEntityRenderer::doRenderUpdateSynchronousTyped(const ScenePointer& sce
|
|||
model->removeFromScene(scene, transaction);
|
||||
withWriteLock([&] { _model.reset(); });
|
||||
}
|
||||
emit requestRenderUpdate();
|
||||
return;
|
||||
}
|
||||
|
||||
_modelJustLoaded = false;
|
||||
// Check for addition
|
||||
if (_hasModel && !(bool)_model) {
|
||||
model = std::make_shared<Model>(nullptr, entity.get());
|
||||
connect(model.get(), &Model::setURLFinished, this, &ModelEntityRenderer::handleModelLoaded);
|
||||
connect(model.get(), &Model::setURLFinished, this, &ModelEntityRenderer::requestRenderUpdate);
|
||||
connect(model.get(), &Model::requestRenderUpdate, this, &ModelEntityRenderer::requestRenderUpdate);
|
||||
model->setLoadingPriority(EntityTreeRenderer::getEntityLoadingPriority(*entity));
|
||||
model->init();
|
||||
entity->setModel(model);
|
||||
|
@ -1172,6 +1169,7 @@ void ModelEntityRenderer::doRenderUpdateSynchronousTyped(const ScenePointer& sce
|
|||
|
||||
// Nothing else to do unless the model is loaded
|
||||
if (!model->isLoaded()) {
|
||||
emit needsRenderUpdate();
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1247,13 +1245,6 @@ void ModelEntityRenderer::doRenderUpdateSynchronousTyped(const ScenePointer& sce
|
|||
}
|
||||
}
|
||||
|
||||
void ModelEntityRenderer::handleModelLoaded(bool success) {
|
||||
if (success) {
|
||||
_modelJustLoaded = true;
|
||||
emit requestRenderUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
// NOTE: this only renders the "meta" portion of the Model, namely it renders debugging items
|
||||
void ModelEntityRenderer::doRender(RenderArgs* args) {
|
||||
PROFILE_RANGE(render_detail, "MetaModelRender");
|
||||
|
|
|
@ -151,7 +151,6 @@ private:
|
|||
// Transparency is handled in ModelMeshPartPayload
|
||||
virtual bool isTransparent() const override { return false; }
|
||||
|
||||
bool _modelJustLoaded { false };
|
||||
bool _hasModel { false };
|
||||
::ModelPointer _model;
|
||||
GeometryResource::Pointer _compoundShapeResource;
|
||||
|
@ -180,8 +179,6 @@ private:
|
|||
uint64_t _lastAnimated { 0 };
|
||||
float _currentFrame { 0 };
|
||||
|
||||
private slots:
|
||||
void handleModelLoaded(bool success);
|
||||
};
|
||||
|
||||
} } // namespace
|
||||
|
|
|
@ -814,11 +814,13 @@ void Model::setTextures(const QVariantMap& textures) {
|
|||
_needsUpdateTextures = true;
|
||||
_needsFixupInScene = true;
|
||||
_renderGeometry->setTextures(textures);
|
||||
emit requestRenderUpdate();
|
||||
} else {
|
||||
// FIXME(Huffman): Disconnect previously connected lambdas so we don't set textures multiple
|
||||
// after the geometry has finished loading.
|
||||
connect(&_renderWatcher, &GeometryResourceWatcher::finished, this, [this, textures]() {
|
||||
_renderGeometry->setTextures(textures);
|
||||
emit requestRenderUpdate();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -103,7 +103,7 @@ public:
|
|||
bool isLayeredInFront() const { return _isLayeredInFront; }
|
||||
|
||||
virtual void updateRenderItems();
|
||||
void setRenderItemsNeedUpdate() { _renderItemsNeedUpdate = true; }
|
||||
void setRenderItemsNeedUpdate() { _renderItemsNeedUpdate = true; emit requestRenderUpdate(); }
|
||||
bool getRenderItemsNeedUpdate() { return _renderItemsNeedUpdate; }
|
||||
AABox getRenderableMeshBound() const;
|
||||
const render::ItemIDs& fetchRenderItemIDs() const;
|
||||
|
@ -265,6 +265,7 @@ public slots:
|
|||
signals:
|
||||
void setURLFinished(bool success);
|
||||
void setCollisionModelURLFinished(bool success);
|
||||
void requestRenderUpdate();
|
||||
|
||||
protected:
|
||||
|
||||
|
|
Loading…
Reference in a new issue