From 940b112f6250e42103970c343c41ac1eaf6e28dd Mon Sep 17 00:00:00 2001 From: SamGondelman Date: Wed, 23 May 2018 11:58:50 -0700 Subject: [PATCH] fix image and text overlay drifting --- .../src/ui/overlays/Billboard3DOverlay.cpp | 7 +++++++ .../src/ui/overlays/Billboard3DOverlay.h | 3 +++ interface/src/ui/overlays/Image3DOverlay.cpp | 5 ----- interface/src/ui/overlays/Text3DOverlay.cpp | 20 +------------------ interface/src/ui/overlays/Text3DOverlay.h | 5 ----- 5 files changed, 11 insertions(+), 29 deletions(-) diff --git a/interface/src/ui/overlays/Billboard3DOverlay.cpp b/interface/src/ui/overlays/Billboard3DOverlay.cpp index 960f0de095..ecade70ef8 100644 --- a/interface/src/ui/overlays/Billboard3DOverlay.cpp +++ b/interface/src/ui/overlays/Billboard3DOverlay.cpp @@ -46,6 +46,13 @@ bool Billboard3DOverlay::applyTransformTo(Transform& transform, bool force) { return transformChanged; } +void Billboard3DOverlay::update(float duration) { + if (isFacingAvatar()) { + _renderVariableDirty = true; + } + Parent::update(duration); +} + Transform Billboard3DOverlay::evalRenderTransform() { Transform transform = getTransform(); bool transformChanged = applyTransformTo(transform, true); diff --git a/interface/src/ui/overlays/Billboard3DOverlay.h b/interface/src/ui/overlays/Billboard3DOverlay.h index 6b3aa40451..174bc23bc8 100644 --- a/interface/src/ui/overlays/Billboard3DOverlay.h +++ b/interface/src/ui/overlays/Billboard3DOverlay.h @@ -18,6 +18,7 @@ class Billboard3DOverlay : public Planar3DOverlay, public PanelAttachable, public Billboardable { Q_OBJECT + using Parent = Planar3DOverlay; public: Billboard3DOverlay() {} @@ -26,6 +27,8 @@ public: void setProperties(const QVariantMap& properties) override; QVariant getProperty(const QString& property) override; + void update(float duration) override; + protected: virtual bool applyTransformTo(Transform& transform, bool force = false) override; diff --git a/interface/src/ui/overlays/Image3DOverlay.cpp b/interface/src/ui/overlays/Image3DOverlay.cpp index df93245922..6e9946e935 100644 --- a/interface/src/ui/overlays/Image3DOverlay.cpp +++ b/interface/src/ui/overlays/Image3DOverlay.cpp @@ -51,11 +51,6 @@ void Image3DOverlay::update(float deltatime) { _texture = DependencyManager::get()->getTexture(_url); _textureIsLoaded = false; } - if (usecTimestampNow() > _transformExpiry) { - Transform transform = getTransform(); - applyTransformTo(transform); - setTransform(transform); - } Parent::update(deltatime); } diff --git a/interface/src/ui/overlays/Text3DOverlay.cpp b/interface/src/ui/overlays/Text3DOverlay.cpp index 9c920efb93..b128ce7df7 100644 --- a/interface/src/ui/overlays/Text3DOverlay.cpp +++ b/interface/src/ui/overlays/Text3DOverlay.cpp @@ -83,15 +83,6 @@ xColor Text3DOverlay::getBackgroundColor() { return result; } -void Text3DOverlay::update(float deltatime) { - if (usecTimestampNow() > _transformExpiry) { - Transform transform = getTransform(); - applyTransformTo(transform); - setTransform(transform); - } - Parent::update(deltatime); -} - void Text3DOverlay::render(RenderArgs* args) { if (!_renderVisible || !getParentVisible()) { return; // do nothing if we're not visible @@ -306,13 +297,4 @@ QSizeF Text3DOverlay::textSize(const QString& text) const { float pointToWorldScale = (maxHeight / FIXED_FONT_SCALING_RATIO) * _lineHeight; return QSizeF(extents.x, extents.y) * pointToWorldScale; -} - -bool Text3DOverlay::findRayIntersection(const glm::vec3 &origin, const glm::vec3 &direction, float &distance, - BoxFace &face, glm::vec3& surfaceNormal) { - Transform transform = getTransform(); - applyTransformTo(transform, true); - setTransform(transform); - return Billboard3DOverlay::findRayIntersection(origin, direction, distance, face, surfaceNormal); -} - +} \ No newline at end of file diff --git a/interface/src/ui/overlays/Text3DOverlay.h b/interface/src/ui/overlays/Text3DOverlay.h index daa5fdc804..21163101d0 100644 --- a/interface/src/ui/overlays/Text3DOverlay.h +++ b/interface/src/ui/overlays/Text3DOverlay.h @@ -30,8 +30,6 @@ public: ~Text3DOverlay(); virtual void render(RenderArgs* args) override; - virtual void update(float deltatime) override; - virtual const render::ShapeKey getShapeKey() override; // getters @@ -60,9 +58,6 @@ public: QSizeF textSize(const QString& test) const; // Meters - virtual bool findRayIntersection(const glm::vec3& origin, const glm::vec3& direction, float& distance, - BoxFace& face, glm::vec3& surfaceNormal) override; - virtual Text3DOverlay* createClone() const override; private: