mirror of
https://github.com/overte-org/overte.git
synced 2025-04-22 09:33:36 +02:00
Cleanup
This commit is contained in:
parent
ec7536db2c
commit
30bf800963
3 changed files with 16 additions and 43 deletions
|
@ -256,17 +256,8 @@ bool Base3DOverlay::findRayIntersection(const glm::vec3& origin, const glm::vec3
|
|||
void Base3DOverlay::locationChanged(bool tellPhysics) {
|
||||
SpatiallyNestable::locationChanged(tellPhysics);
|
||||
|
||||
// Force the actual update of the render transform now that we notify for the change
|
||||
// so it s captured for the time of rendering
|
||||
// Force the actual update of the render transform through the notify call
|
||||
notifyRenderTransformChange();
|
||||
|
||||
/* auto itemID = getRenderItemID();
|
||||
if (render::Item::isValidID(itemID)) {
|
||||
render::ScenePointer scene = qApp->getMain3DScene();
|
||||
render::Transaction transaction;
|
||||
transaction.updateItem(itemID);
|
||||
scene->enqueueTransaction(transaction);
|
||||
}*/
|
||||
}
|
||||
|
||||
void Base3DOverlay::parentDeleted() {
|
||||
|
@ -274,44 +265,25 @@ void Base3DOverlay::parentDeleted() {
|
|||
}
|
||||
|
||||
void Base3DOverlay::update(float duration) {
|
||||
|
||||
// In Base3DOverlay, if its location or bound changed, the renderTrasnformDirty flag is true.
|
||||
// then the correct transform used for rendering is computed in the update transaction and assigned.
|
||||
// TODO: Fix the value to be computed in main thread now and passed by value to the render item.
|
||||
// This is the simplest fix for the web overlay of the tablet for now
|
||||
if (_renderTransformDirty) {
|
||||
auto self = this;
|
||||
// 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.
|
||||
/* void* key = (void*)this;
|
||||
std::weak_ptr<SpatiallyNestable> weakSelf = shared_from_this();
|
||||
AbstractViewStateInterface::instance()->pushPostUpdateLambda(key, [weakSelf]() {
|
||||
// do nothing, if the model has already been destroyed.
|
||||
auto spatiallyNestableSelf = weakSelf.lock();
|
||||
if (!spatiallyNestableSelf) {
|
||||
return;
|
||||
}
|
||||
auto self = std::dynamic_pointer_cast<Base3DOverlay>(spatiallyNestableSelf);
|
||||
*/
|
||||
#ifdef UpdateInMain
|
||||
self->setRenderTransform(self->evalRenderTransform());
|
||||
#else
|
||||
auto renderTransform = self->evalRenderTransform();
|
||||
#endif
|
||||
auto itemID = self->getRenderItemID();
|
||||
if (render::Item::isValidID(itemID)) {
|
||||
auto itemID = getRenderItemID();
|
||||
if (render::Item::isValidID(itemID)) {
|
||||
render::ScenePointer scene = qApp->getMain3DScene();
|
||||
render::Transaction transaction;
|
||||
#ifdef UpdateInMain
|
||||
transaction.updateItem(itemID);
|
||||
#else
|
||||
transaction.updateItem<Overlay>(itemID, [renderTransform](Overlay& data) {
|
||||
transaction.updateItem<Overlay>(itemID, [](Overlay& data) {
|
||||
auto overlay3D = dynamic_cast<Base3DOverlay*>(&data);
|
||||
if (overlay3D) {
|
||||
auto latestTransform = overlay3D->evalRenderTransform();
|
||||
overlay3D->setRenderTransform(latestTransform);// evalRenderTransform();
|
||||
overlay3D->setRenderTransform(latestTransform);
|
||||
}
|
||||
});
|
||||
#endif
|
||||
scene->enqueueTransaction(transaction);
|
||||
|
||||
scene->enqueueTransaction(transaction);
|
||||
}
|
||||
// });
|
||||
_renderTransformDirty = false;
|
||||
}
|
||||
}
|
||||
|
@ -326,4 +298,4 @@ Transform Base3DOverlay::evalRenderTransform() const {
|
|||
|
||||
void Base3DOverlay::setRenderTransform(const Transform& transform) {
|
||||
_renderTransform = transform;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,8 +55,6 @@ public:
|
|||
void update(float deltatime) override;
|
||||
|
||||
void notifyRenderTransformChange() const;
|
||||
virtual Transform evalRenderTransform() const;
|
||||
void setRenderTransform(const Transform& transform);
|
||||
|
||||
void setProperties(const QVariantMap& properties) override;
|
||||
QVariant getProperty(const QString& property) override;
|
||||
|
@ -74,6 +72,9 @@ protected:
|
|||
virtual void parentDeleted() override;
|
||||
|
||||
mutable Transform _renderTransform;
|
||||
virtual Transform evalRenderTransform() const;
|
||||
virtual void setRenderTransform(const Transform& transform);
|
||||
const Transform& getRenderTransform() const { return _renderTransform; }
|
||||
|
||||
float _lineWidth;
|
||||
bool _isSolid;
|
||||
|
|
|
@ -320,7 +320,7 @@ void Web3DOverlay::render(RenderArgs* args) {
|
|||
Q_ASSERT(args->_batch);
|
||||
gpu::Batch& batch = *args->_batch;
|
||||
batch.setResourceTexture(0, _texture);
|
||||
batch.setModelTransform(_renderTransform);
|
||||
batch.setModelTransform(getRenderTransform());
|
||||
|
||||
auto geometryCache = DependencyManager::get<GeometryCache>();
|
||||
if (color.a < OPAQUE_ALPHA_THRESHOLD) {
|
||||
|
|
Loading…
Reference in a new issue