diff --git a/domain-server/src/DomainServer.cpp b/domain-server/src/DomainServer.cpp index 57c4692794..8136bf3b53 100644 --- a/domain-server/src/DomainServer.cpp +++ b/domain-server/src/DomainServer.cpp @@ -2906,7 +2906,7 @@ void DomainServer::updateReplicationNodes(ReplicationServerDirection direction) // collect them in a vector to separately remove them with handleKillNode (since eachNode has a read lock and // we cannot recursively take the write lock required by handleKillNode) std::vector nodesToKill; - nodeList->eachNode([this, direction, replicationNodesInSettings, replicationDirection, &nodesToKill](const SharedNodePointer& otherNode) { + nodeList->eachNode([direction, replicationNodesInSettings, replicationDirection, &nodesToKill](const SharedNodePointer& otherNode) { if ((direction == Upstream && NodeType::isUpstream(otherNode->getType())) || (direction == Downstream && NodeType::isDownstream(otherNode->getType()))) { bool nodeInSettings = find(replicationNodesInSettings.cbegin(), replicationNodesInSettings.cend(), diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index f23410bff9..16869dd3d7 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -269,7 +269,7 @@ class RenderEventHandler : public QObject { public: RenderEventHandler() { // Transfer to a new thread - moveToNewNamedThread(this, "RenderThread", [this](QThread* renderThread) { + moveToNewNamedThread(this, "RenderThread", [](QThread* renderThread) { hifi::qt::addBlockingForbiddenThread("Render", renderThread); qApp->_lastTimeRendered.start(); }, std::bind(&RenderEventHandler::initialize, this), QThread::HighestPriority); @@ -1755,7 +1755,13 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo // we can unlock the desktop repositioning code, since all the positions will be // relative to the desktop size for this plugin auto offscreenUi = DependencyManager::get(); - offscreenUi->getDesktop()->setProperty("repositionLocked", false); + connect(offscreenUi.data(), &OffscreenUi::desktopReady, []() { + auto offscreenUi = DependencyManager::get(); + auto desktop = offscreenUi->getDesktop(); + if (desktop) { + desktop->setProperty("repositionLocked", false); + } + }); // Make sure we don't time out during slow operations at startup updateHeartbeat(); @@ -2309,7 +2315,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo QTimer* checkLoginTimer = new QTimer(this); checkLoginTimer->setInterval(CHECK_LOGIN_TIMER); checkLoginTimer->setSingleShot(true); - connect(checkLoginTimer, &QTimer::timeout, this, [this]() { + connect(checkLoginTimer, &QTimer::timeout, this, []() { auto accountManager = DependencyManager::get(); auto dialogsManager = DependencyManager::get(); if (!accountManager->isLoggedIn()) { @@ -4673,8 +4679,14 @@ void Application::idle() { checkChangeCursor(); - Stats::getInstance()->updateStats(); - AnimStats::getInstance()->updateStats(); + auto stats = Stats::getInstance(); + if (stats) { + stats->updateStats(); + } + auto animStats = AnimStats::getInstance(); + if (animStats) { + animStats->updateStats(); + } // Normally we check PipelineWarnings, but since idle will often take more than 10ms we only show these idle timing // details if we're in ExtraDebugging mode. However, the ::update() and its subcomponents will show their timing diff --git a/interface/src/Application_render.cpp b/interface/src/Application_render.cpp index 6648fa2eb7..a87caeb9a8 100644 --- a/interface/src/Application_render.cpp +++ b/interface/src/Application_render.cpp @@ -157,7 +157,10 @@ void Application::paintGL() { renderArgs._context->enableStereo(false); { - Stats::getInstance()->setRenderDetails(renderArgs._details); + auto stats = Stats::getInstance(); + if (stats) { + stats->setRenderDetails(renderArgs._details); + } } uint64_t lastPaintDuration = usecTimestampNow() - lastPaintBegin; diff --git a/interface/src/raypick/PathPointer.h b/interface/src/raypick/PathPointer.h index b3638d1f7d..6d5abdeec0 100644 --- a/interface/src/raypick/PathPointer.h +++ b/interface/src/raypick/PathPointer.h @@ -27,6 +27,7 @@ class StartEndRenderState { public: StartEndRenderState() {} StartEndRenderState(const OverlayID& startID, const OverlayID& endID); + virtual ~StartEndRenderState() {} const OverlayID& getStartID() const { return _startID; } const OverlayID& getEndID() const { return _endID; } diff --git a/interface/src/scripting/HMDScriptingInterface.h b/interface/src/scripting/HMDScriptingInterface.h index a8fec839eb..0b18947f76 100644 --- a/interface/src/scripting/HMDScriptingInterface.h +++ b/interface/src/scripting/HMDScriptingInterface.h @@ -62,7 +62,6 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen Q_OBJECT Q_PROPERTY(glm::vec3 position READ getPosition) Q_PROPERTY(glm::quat orientation READ getOrientation) - Q_PROPERTY(bool mounted READ isMounted NOTIFY mountedChanged) Q_PROPERTY(bool showTablet READ getShouldShowTablet) Q_PROPERTY(bool tabletContextualMode READ getTabletContextualMode) Q_PROPERTY(QUuid tabletID READ getCurrentTabletFrameID WRITE setCurrentTabletFrameID) @@ -350,7 +349,7 @@ public: static QScriptValue getHUDLookAtPosition2D(QScriptContext* context, QScriptEngine* engine); static QScriptValue getHUDLookAtPosition3D(QScriptContext* context, QScriptEngine* engine); - bool isMounted() const; + bool isMounted() const override; void toggleShouldShowTablet(); void setShouldShowTablet(bool value); diff --git a/interface/src/ui/OverlayConductor.cpp b/interface/src/ui/OverlayConductor.cpp index e27001567f..da4fdaba44 100644 --- a/interface/src/ui/OverlayConductor.cpp +++ b/interface/src/ui/OverlayConductor.cpp @@ -75,7 +75,14 @@ void OverlayConductor::centerUI() { void OverlayConductor::update(float dt) { auto offscreenUi = DependencyManager::get(); - bool currentVisible = !offscreenUi->getDesktop()->property("pinned").toBool(); + if (!offscreenUi) { + return; + } + auto desktop = offscreenUi->getDesktop(); + if (!desktop) { + return; + } + bool currentVisible = !desktop->property("pinned").toBool(); auto myAvatar = DependencyManager::get()->getMyAvatar(); // centerUI when hmd mode is first enabled and mounted diff --git a/interface/src/ui/overlays/Text3DOverlay.cpp b/interface/src/ui/overlays/Text3DOverlay.cpp index fc4b8b9010..40e49ccefd 100644 --- a/interface/src/ui/overlays/Text3DOverlay.cpp +++ b/interface/src/ui/overlays/Text3DOverlay.cpp @@ -114,7 +114,6 @@ void Text3DOverlay::render(RenderArgs* args) { float scaleFactor = (maxHeight / FIXED_FONT_SCALING_RATIO) * _lineHeight; - glm::vec2 clipMinimum(0.0f, 0.0f); glm::vec2 clipDimensions((dimensions.x - (_leftMargin + _rightMargin)) / scaleFactor, (dimensions.y - (_topMargin + _bottomMargin)) / scaleFactor); @@ -296,4 +295,4 @@ QSizeF Text3DOverlay::textSize(const QString& text) const { float pointToWorldScale = (maxHeight / FIXED_FONT_SCALING_RATIO) * _lineHeight; return QSizeF(extents.x, extents.y) * pointToWorldScale; -} \ No newline at end of file +} diff --git a/libraries/controllers/src/controllers/InputDevice.h b/libraries/controllers/src/controllers/InputDevice.h index 1e626e6a3c..6c5cc3a065 100644 --- a/libraries/controllers/src/controllers/InputDevice.h +++ b/libraries/controllers/src/controllers/InputDevice.h @@ -98,6 +98,7 @@ enum Hand { class InputDevice { public: InputDevice(const QString& name) : _name(name) {} + virtual ~InputDevice() {} using Pointer = std::shared_ptr; diff --git a/libraries/controllers/src/controllers/impl/conditionals/AndConditional.h b/libraries/controllers/src/controllers/impl/conditionals/AndConditional.h index 2299843a24..7d8f08ca1c 100644 --- a/libraries/controllers/src/controllers/impl/conditionals/AndConditional.h +++ b/libraries/controllers/src/controllers/impl/conditionals/AndConditional.h @@ -24,6 +24,8 @@ public: AndConditional(Conditional::Pointer& first, Conditional::Pointer& second) : _children({ first, second }) {} + virtual ~AndConditional() {} + virtual bool satisfied() override; private: diff --git a/libraries/controllers/src/controllers/impl/conditionals/EndpointConditional.h b/libraries/controllers/src/controllers/impl/conditionals/EndpointConditional.h index 0ba1347087..a6bd7d468d 100644 --- a/libraries/controllers/src/controllers/impl/conditionals/EndpointConditional.h +++ b/libraries/controllers/src/controllers/impl/conditionals/EndpointConditional.h @@ -18,6 +18,7 @@ namespace controller { class EndpointConditional : public Conditional { public: EndpointConditional(Endpoint::Pointer endpoint) : _endpoint(endpoint) {} + virtual ~EndpointConditional() {} virtual bool satisfied() override { return _endpoint && _endpoint->peek() != 0.0f; } private: Endpoint::Pointer _endpoint; diff --git a/libraries/controllers/src/controllers/impl/conditionals/NotConditional.h b/libraries/controllers/src/controllers/impl/conditionals/NotConditional.h index 6b19cf9505..3fcd5f49fc 100644 --- a/libraries/controllers/src/controllers/impl/conditionals/NotConditional.h +++ b/libraries/controllers/src/controllers/impl/conditionals/NotConditional.h @@ -19,6 +19,7 @@ namespace controller { using Pointer = std::shared_ptr; NotConditional(Conditional::Pointer operand) : _operand(operand) { } + virtual ~NotConditional() {} virtual bool satisfied() override; diff --git a/libraries/controllers/src/controllers/impl/filters/ClampFilter.h b/libraries/controllers/src/controllers/impl/filters/ClampFilter.h index b06a43515f..6eca00fbe2 100644 --- a/libraries/controllers/src/controllers/impl/filters/ClampFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/ClampFilter.h @@ -18,6 +18,7 @@ class ClampFilter : public Filter { REGISTER_FILTER_CLASS(ClampFilter); public: ClampFilter(float min = 0.0, float max = 1.0) : _min(min), _max(max) {}; + virtual ~ClampFilter() {} virtual float apply(float value) const override { return glm::clamp(value, _min, _max); } diff --git a/libraries/controllers/src/controllers/impl/filters/ConstrainToIntegerFilter.h b/libraries/controllers/src/controllers/impl/filters/ConstrainToIntegerFilter.h index c9a25fde72..bc90121ab0 100644 --- a/libraries/controllers/src/controllers/impl/filters/ConstrainToIntegerFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/ConstrainToIntegerFilter.h @@ -18,6 +18,7 @@ class ConstrainToIntegerFilter : public Filter { REGISTER_FILTER_CLASS(ConstrainToIntegerFilter); public: ConstrainToIntegerFilter() {}; + virtual ~ConstrainToIntegerFilter() {} virtual float apply(float value) const override { return glm::sign(value); diff --git a/libraries/controllers/src/controllers/impl/filters/ConstrainToPositiveIntegerFilter.h b/libraries/controllers/src/controllers/impl/filters/ConstrainToPositiveIntegerFilter.h index e3f4ee8929..accebef851 100644 --- a/libraries/controllers/src/controllers/impl/filters/ConstrainToPositiveIntegerFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/ConstrainToPositiveIntegerFilter.h @@ -18,6 +18,7 @@ class ConstrainToPositiveIntegerFilter : public Filter { REGISTER_FILTER_CLASS(ConstrainToPositiveIntegerFilter); public: ConstrainToPositiveIntegerFilter() {}; + virtual ~ConstrainToPositiveIntegerFilter() {}; virtual float apply(float value) const override { return (value <= 0.0f) ? 0.0f : 1.0f; diff --git a/libraries/controllers/src/controllers/impl/filters/DeadZoneFilter.h b/libraries/controllers/src/controllers/impl/filters/DeadZoneFilter.h index d898647126..96c60198e2 100644 --- a/libraries/controllers/src/controllers/impl/filters/DeadZoneFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/DeadZoneFilter.h @@ -18,6 +18,7 @@ class DeadZoneFilter : public Filter { REGISTER_FILTER_CLASS(DeadZoneFilter); public: DeadZoneFilter(float min = 0.0) : _min(min) {}; + virtual ~DeadZoneFilter() {} virtual float apply(float value) const override; diff --git a/libraries/controllers/src/controllers/impl/filters/ExponentialSmoothingFilter.h b/libraries/controllers/src/controllers/impl/filters/ExponentialSmoothingFilter.h index 134f57243e..5b29b6681a 100644 --- a/libraries/controllers/src/controllers/impl/filters/ExponentialSmoothingFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/ExponentialSmoothingFilter.h @@ -20,6 +20,7 @@ namespace controller { ExponentialSmoothingFilter() {} ExponentialSmoothingFilter(float rotationConstant, float translationConstant) : _translationConstant(translationConstant), _rotationConstant(rotationConstant) {} + virtual ~ExponentialSmoothingFilter() {} float apply(float value) const override { return value; } Pose apply(Pose value) const override; diff --git a/libraries/controllers/src/controllers/impl/filters/HysteresisFilter.h b/libraries/controllers/src/controllers/impl/filters/HysteresisFilter.h index 4eb563754f..4a607d0d5f 100644 --- a/libraries/controllers/src/controllers/impl/filters/HysteresisFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/HysteresisFilter.h @@ -18,6 +18,7 @@ class HysteresisFilter : public Filter { REGISTER_FILTER_CLASS(HysteresisFilter); public: HysteresisFilter(float min = 0.25, float max = 0.75); + virtual ~HysteresisFilter() {} virtual float apply(float value) const override; virtual Pose apply(Pose value) const override { return value; } diff --git a/libraries/controllers/src/controllers/impl/filters/InvertFilter.h b/libraries/controllers/src/controllers/impl/filters/InvertFilter.h index 8acc9d56d6..03b6e9fcb0 100644 --- a/libraries/controllers/src/controllers/impl/filters/InvertFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/InvertFilter.h @@ -19,6 +19,7 @@ class InvertFilter : public ScaleFilter { public: using ScaleFilter::parseParameters; InvertFilter() : ScaleFilter(-1.0f) {} + virtual ~InvertFilter() {} virtual bool parseParameters(const QJsonArray& parameters) { return true; } diff --git a/libraries/controllers/src/controllers/impl/filters/LowVelocityFilter.h b/libraries/controllers/src/controllers/impl/filters/LowVelocityFilter.h index b1c6be1f58..fa75473edf 100644 --- a/libraries/controllers/src/controllers/impl/filters/LowVelocityFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/LowVelocityFilter.h @@ -20,6 +20,7 @@ namespace controller { LowVelocityFilter() {} LowVelocityFilter(float rotationConstant, float translationConstant) : _translationConstant(translationConstant), _rotationConstant(rotationConstant) {} + virtual ~LowVelocityFilter() {} float apply(float value) const override { return value; } Pose apply(Pose newPose) const override; diff --git a/libraries/controllers/src/controllers/impl/filters/NotFilter.h b/libraries/controllers/src/controllers/impl/filters/NotFilter.h index ceb7d29de3..fa52b8e212 100644 --- a/libraries/controllers/src/controllers/impl/filters/NotFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/NotFilter.h @@ -10,6 +10,7 @@ class NotFilter : public Filter { REGISTER_FILTER_CLASS(NotFilter); public: NotFilter(); + virtual ~NotFilter() {} virtual float apply(float value) const override; virtual Pose apply(Pose value) const override { return value; } diff --git a/libraries/controllers/src/controllers/impl/filters/PostTransformFilter.h b/libraries/controllers/src/controllers/impl/filters/PostTransformFilter.h index 656a146ff2..1cb9c0a1bd 100644 --- a/libraries/controllers/src/controllers/impl/filters/PostTransformFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/PostTransformFilter.h @@ -21,6 +21,7 @@ class PostTransformFilter : public Filter { public: PostTransformFilter() { } PostTransformFilter(glm::mat4 transform) : _transform(transform) {} + virtual ~PostTransformFilter() {} virtual float apply(float value) const override { return value; } virtual Pose apply(Pose value) const override { return value.postTransform(_transform); } virtual bool parseParameters(const QJsonValue& parameters) override { return parseMat4Parameter(parameters, _transform); } diff --git a/libraries/controllers/src/controllers/impl/filters/PulseFilter.h b/libraries/controllers/src/controllers/impl/filters/PulseFilter.h index a8c7cbf9e6..37cfe34b86 100644 --- a/libraries/controllers/src/controllers/impl/filters/PulseFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/PulseFilter.h @@ -20,6 +20,7 @@ class PulseFilter : public Filter { public: PulseFilter() {} PulseFilter(float interval) : _interval(interval) {} + virtual ~PulseFilter() {} virtual float apply(float value) const override; diff --git a/libraries/controllers/src/controllers/impl/filters/RotateFilter.h b/libraries/controllers/src/controllers/impl/filters/RotateFilter.h index ee2e081393..aecf4f7b7c 100644 --- a/libraries/controllers/src/controllers/impl/filters/RotateFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/RotateFilter.h @@ -21,6 +21,7 @@ class RotateFilter : public Filter { public: RotateFilter() { } RotateFilter(glm::quat rotation) : _rotation(rotation) {} + virtual ~RotateFilter() {} virtual float apply(float value) const override { return value; } diff --git a/libraries/controllers/src/controllers/impl/filters/ScaleFilter.h b/libraries/controllers/src/controllers/impl/filters/ScaleFilter.h index 7b03e2ce48..84f7cb7e47 100644 --- a/libraries/controllers/src/controllers/impl/filters/ScaleFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/ScaleFilter.h @@ -21,6 +21,7 @@ class ScaleFilter : public Filter { public: ScaleFilter() {} ScaleFilter(float scale) : _scale(scale) {} + virtual ~ScaleFilter() {} virtual float apply(float value) const override { return value * _scale; diff --git a/libraries/controllers/src/controllers/impl/filters/TransformFilter.h b/libraries/controllers/src/controllers/impl/filters/TransformFilter.h index 263b70c9b4..ccfa9c6c25 100644 --- a/libraries/controllers/src/controllers/impl/filters/TransformFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/TransformFilter.h @@ -21,6 +21,7 @@ class TransformFilter : public Filter { public: TransformFilter() { } TransformFilter(glm::mat4 transform) : _transform(transform) {} + virtual ~TransformFilter() {} virtual float apply(float value) const override { return value; } virtual Pose apply(Pose value) const override { return value.transform(_transform); } diff --git a/libraries/controllers/src/controllers/impl/filters/TranslateFilter.h b/libraries/controllers/src/controllers/impl/filters/TranslateFilter.h index eda2912a8a..a66e1eb4a4 100644 --- a/libraries/controllers/src/controllers/impl/filters/TranslateFilter.h +++ b/libraries/controllers/src/controllers/impl/filters/TranslateFilter.h @@ -21,6 +21,7 @@ class TranslateFilter : public Filter { public: TranslateFilter() { } TranslateFilter(glm::vec3 translate) : _translate(translate) {} + virtual ~TranslateFilter() {} virtual float apply(float value) const override { return value; } virtual Pose apply(Pose value) const override { return value.transform(glm::translate(_translate)); } diff --git a/libraries/display-plugins/src/display-plugins/AbstractHMDScriptingInterface.h b/libraries/display-plugins/src/display-plugins/AbstractHMDScriptingInterface.h index 7fe58618bc..4234a8731b 100644 --- a/libraries/display-plugins/src/display-plugins/AbstractHMDScriptingInterface.h +++ b/libraries/display-plugins/src/display-plugins/AbstractHMDScriptingInterface.h @@ -20,6 +20,7 @@ class AbstractHMDScriptingInterface : public QObject { Q_PROPERTY(float eyeHeight READ getEyeHeight) Q_PROPERTY(float playerHeight READ getPlayerHeight) Q_PROPERTY(float ipdScale READ getIPDScale WRITE setIPDScale NOTIFY IPDScaleChanged) + Q_PROPERTY(bool mounted READ isMounted NOTIFY mountedChanged) public: AbstractHMDScriptingInterface(); @@ -29,6 +30,7 @@ public: float getIPDScale() const; void setIPDScale(float ipdScale); bool isHMDMode() const; + virtual bool isMounted() const = 0; signals: /**jsdoc diff --git a/libraries/fbx/src/FBXReader.cpp b/libraries/fbx/src/FBXReader.cpp index d0efed3df4..dd766f002c 100644 --- a/libraries/fbx/src/FBXReader.cpp +++ b/libraries/fbx/src/FBXReader.cpp @@ -1923,7 +1923,6 @@ FBXGeometry* FBXReader::extractFBXGeometry(const QVariantHash& mapping, const QS }; // now that all joints have been scanned compute a k-Dop bounding volume of mesh - glm::vec3 defaultCapsuleAxis(0.0f, 1.0f, 0.0f); for (int i = 0; i < geometry.joints.size(); ++i) { FBXJoint& joint = geometry.joints[i]; diff --git a/libraries/gpu-gl-common/src/gpu/gl/GLTexture.h b/libraries/gpu-gl-common/src/gpu/gl/GLTexture.h index a6a38fbcd6..e9a55ad8e2 100644 --- a/libraries/gpu-gl-common/src/gpu/gl/GLTexture.h +++ b/libraries/gpu-gl-common/src/gpu/gl/GLTexture.h @@ -25,6 +25,7 @@ struct GLFilterMode { class GLTextureTransferEngine { public: + virtual ~GLTextureTransferEngine() {} using Pointer = std::shared_ptr; /// Called once per frame to perform any require memory management or transfer work virtual void manageMemory() = 0; diff --git a/libraries/gpu-gl/src/gpu/gl41/GL41BackendTexture.cpp b/libraries/gpu-gl/src/gpu/gl41/GL41BackendTexture.cpp index 97b1a96a1d..d1b5969793 100644 --- a/libraries/gpu-gl/src/gpu/gl41/GL41BackendTexture.cpp +++ b/libraries/gpu-gl/src/gpu/gl41/GL41BackendTexture.cpp @@ -295,7 +295,6 @@ GL41VariableAllocationTexture::GL41VariableAllocationTexture(const std::weak_ptr _maxAllocatedMip = _populatedMip = mipLevels; _minAllocatedMip = texture.minAvailableMipLevel(); - uvec3 mipDimensions; for (uint16_t mip = _minAllocatedMip; mip < mipLevels; ++mip) { if (glm::all(glm::lessThanEqual(texture.evalMipDimensions(mip), INITIAL_MIP_TRANSFER_DIMENSIONS))) { _maxAllocatedMip = _populatedMip = mip; diff --git a/libraries/gpu-gl/src/gpu/gl45/GL45BackendVariableTexture.cpp b/libraries/gpu-gl/src/gpu/gl45/GL45BackendVariableTexture.cpp index 4689163a47..f53eff637d 100644 --- a/libraries/gpu-gl/src/gpu/gl45/GL45BackendVariableTexture.cpp +++ b/libraries/gpu-gl/src/gpu/gl45/GL45BackendVariableTexture.cpp @@ -85,7 +85,6 @@ GL45ResourceTexture::GL45ResourceTexture(const std::weak_ptr& backend _maxAllocatedMip = _populatedMip = mipLevels; _minAllocatedMip = texture.minAvailableMipLevel(); - uvec3 mipDimensions; for (uint16_t mip = _minAllocatedMip; mip < mipLevels; ++mip) { if (glm::all(glm::lessThanEqual(texture.evalMipDimensions(mip), INITIAL_MIP_TRANSFER_DIMENSIONS))) { _maxAllocatedMip = _populatedMip = mip; diff --git a/libraries/gpu/src/gpu/State.h b/libraries/gpu/src/gpu/State.h index 385edec277..6e29900c03 100755 --- a/libraries/gpu/src/gpu/State.h +++ b/libraries/gpu/src/gpu/State.h @@ -118,6 +118,7 @@ public: uint8 _function = LESS; uint8 _writeMask = true; uint8 _enabled = false; + __attribute__((unused)) // _spare is here to to affect alignment uint8 _spare = 0; public: DepthTest(bool enabled = false, bool writeMask = true, ComparisonFunction func = LESS) : diff --git a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.h b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.h index b94acb8b71..ce2bea0853 100644 --- a/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.h +++ b/libraries/input-plugins/src/input-plugins/KeyboardMouseDevice.h @@ -96,6 +96,7 @@ protected: class InputDevice : public controller::InputDevice { public: InputDevice() : controller::InputDevice("Keyboard") {} + virtual ~InputDevice() {} private: // Device functions virtual controller::Input::NamedVector getAvailableInputs() const override; diff --git a/libraries/model-networking/src/model-networking/ModelCache.h b/libraries/model-networking/src/model-networking/ModelCache.h index eea6c93786..dfe26788f2 100644 --- a/libraries/model-networking/src/model-networking/ModelCache.h +++ b/libraries/model-networking/src/model-networking/ModelCache.h @@ -36,6 +36,7 @@ public: Geometry() = default; Geometry(const Geometry& geometry); + virtual ~Geometry() {} // Immutable over lifetime using GeometryMeshes = std::vector>; diff --git a/libraries/plugins/src/plugins/InputPlugin.h b/libraries/plugins/src/plugins/InputPlugin.h index 23fbb6cac6..344f07d64c 100644 --- a/libraries/plugins/src/plugins/InputPlugin.h +++ b/libraries/plugins/src/plugins/InputPlugin.h @@ -19,6 +19,7 @@ namespace controller { class InputPlugin : public Plugin { public: + virtual ~InputPlugin() {} virtual void pluginFocusOutEvent() = 0; virtual void pluginUpdate(float deltaTime, const controller::InputCalibrationData& inputCalibrationData) = 0; diff --git a/libraries/pointers/src/Pick.h b/libraries/pointers/src/Pick.h index 099a791407..1703f6598f 100644 --- a/libraries/pointers/src/Pick.h +++ b/libraries/pointers/src/Pick.h @@ -109,6 +109,7 @@ class PickResult { public: PickResult() {} PickResult(const QVariantMap& pickVariant) : pickVariant(pickVariant) {} + virtual ~PickResult() {} virtual QVariantMap toVariantMap() const { return pickVariant; @@ -233,6 +234,7 @@ template class Pick : public PickQuery { public: Pick(const PickFilter& filter, const float maxDistance, const bool enabled) : PickQuery(filter, maxDistance, enabled) {} + virtual ~Pick() {} virtual T getMathematicalPick() const = 0; virtual PickResultPointer getDefaultResult(const QVariantMap& pickVariant) const = 0; diff --git a/libraries/render-utils/src/MeshPartPayload.h b/libraries/render-utils/src/MeshPartPayload.h index 5c7177e890..0cbe082cb5 100644 --- a/libraries/render-utils/src/MeshPartPayload.h +++ b/libraries/render-utils/src/MeshPartPayload.h @@ -28,6 +28,7 @@ class MeshPartPayload { public: MeshPartPayload() {} MeshPartPayload(const std::shared_ptr& mesh, int partIndex, graphics::MaterialPointer material); + virtual ~MeshPartPayload() {} typedef render::Payload Payload; typedef Payload::DataPointer Pointer; diff --git a/libraries/render/src/render/DrawSceneOctree.cpp b/libraries/render/src/render/DrawSceneOctree.cpp index 6c87d2f56b..b10c3fef8d 100644 --- a/libraries/render/src/render/DrawSceneOctree.cpp +++ b/libraries/render/src/render/DrawSceneOctree.cpp @@ -88,7 +88,7 @@ void DrawSceneOctree::run(const RenderContextPointer& renderContext, const ItemS batch.setInputFormat(_cellBoundsFormat); std::vector cellBounds; - auto drawCellBounds = [this, &cellBounds, &scene, &batch](const std::vector& cells) { + auto drawCellBounds = [this, &cellBounds, &scene](const std::vector& cells) { cellBounds.reserve(cellBounds.size() + cells.size()); for (const auto& cellID : cells) { auto cell = scene->getSpatialTree().getConcreteCell(cellID); diff --git a/libraries/render/src/render/Item.h b/libraries/render/src/render/Item.h index 5ecfba2da8..88e85c604a 100644 --- a/libraries/render/src/render/Item.h +++ b/libraries/render/src/render/Item.h @@ -531,6 +531,7 @@ public: typedef UpdateFunctor Updater; Payload(const DataPointer& data) : _data(data) {} + virtual ~Payload() {} // Payload general interface virtual const ItemKey getKey() const override { return payloadGetKey(_data); } diff --git a/libraries/shared/src/PointerEvent.cpp b/libraries/shared/src/PointerEvent.cpp index fb855922c2..422f2dfb20 100644 --- a/libraries/shared/src/PointerEvent.cpp +++ b/libraries/shared/src/PointerEvent.cpp @@ -229,16 +229,9 @@ void PointerEvent::fromScriptValue(const QScriptValue& object, PointerEvent& eve QScriptValue id = object.property("id"); event._id = id.isNumber() ? (uint32_t)id.toNumber() : 0; - glm::vec2 pos2D; vec2FromScriptValue(object.property("pos2D"), event._pos2D); - - glm::vec3 pos3D; vec3FromScriptValue(object.property("pos3D"), event._pos3D); - - glm::vec3 normal; vec3FromScriptValue(object.property("normal"), event._normal); - - glm::vec3 direction; vec3FromScriptValue(object.property("direction"), event._direction); QScriptValue button = object.property("button"); diff --git a/libraries/shared/src/PrioritySortUtil.h b/libraries/shared/src/PrioritySortUtil.h index 27f6b193ba..4a74c5d212 100644 --- a/libraries/shared/src/PrioritySortUtil.h +++ b/libraries/shared/src/PrioritySortUtil.h @@ -29,6 +29,7 @@ namespace PrioritySortUtil { class Sortable { public: + virtual ~Sortable() {} virtual glm::vec3 getPosition() const = 0; virtual float getRadius() const = 0; virtual uint64_t getTimestamp() const = 0; diff --git a/libraries/shared/src/TransformNode.h b/libraries/shared/src/TransformNode.h index 73223a8cee..1c10bed1c0 100644 --- a/libraries/shared/src/TransformNode.h +++ b/libraries/shared/src/TransformNode.h @@ -12,7 +12,8 @@ class TransformNode { public: + virtual ~TransformNode() {} virtual Transform getTransform() = 0; }; -#endif // hifi_TransformNode_h \ No newline at end of file +#endif // hifi_TransformNode_h diff --git a/libraries/task/src/task/Task.h b/libraries/task/src/task/Task.h index 60ccd26b70..3878c5719b 100644 --- a/libraries/task/src/task/Task.h +++ b/libraries/task/src/task/Task.h @@ -174,7 +174,8 @@ public: template using ModelO = Model; template using ModelIO = Model; - Job(ConceptPointer concept) : _concept(concept) {} + Job(const ConceptPointer& concept) : _concept(concept) {} + virtual ~Job() {} const std::string& getName() const { return _concept->getName(); } const Varying getInput() const { return _concept->getInput(); } diff --git a/libraries/ui/src/OffscreenUi.cpp b/libraries/ui/src/OffscreenUi.cpp index d82cfbbf3f..7579de256c 100644 --- a/libraries/ui/src/OffscreenUi.cpp +++ b/libraries/ui/src/OffscreenUi.cpp @@ -205,9 +205,12 @@ bool OffscreenUi::isPointOnDesktopWindow(QVariant point) { } void OffscreenUi::hide(const QString& name) { - QQuickItem* item = getRootItem()->findChild(name); - if (item) { - QQmlProperty(item, OFFSCREEN_VISIBILITY_PROPERTY).write(false); + auto rootItem = getRootItem(); + if (rootItem) { + QQuickItem* item = getRootItem()->findChild(name); + if (item) { + QQmlProperty(item, OFFSCREEN_VISIBILITY_PROPERTY).write(false); + } } } @@ -672,6 +675,7 @@ void OffscreenUi::createDesktop(const QUrl& url) { new KeyboardFocusHack(); connect(_desktop, SIGNAL(showDesktop()), this, SIGNAL(showDesktop())); + emit desktopReady(); }); } diff --git a/libraries/ui/src/OffscreenUi.h b/libraries/ui/src/OffscreenUi.h index 26f9f58dd5..fbf7068b1c 100644 --- a/libraries/ui/src/OffscreenUi.h +++ b/libraries/ui/src/OffscreenUi.h @@ -243,6 +243,8 @@ signals: // void fileDialogResponse(QString response); // void assetDialogResponse(QString response); // void inputDialogResponse(QVariant response); + void desktopReady(); + public slots: void removeModalDialog(QObject* modal); diff --git a/libraries/workload/src/workload/Transaction.h b/libraries/workload/src/workload/Transaction.h index 22328cf4b1..2bad911e4b 100644 --- a/libraries/workload/src/workload/Transaction.h +++ b/libraries/workload/src/workload/Transaction.h @@ -135,7 +135,7 @@ typedef std::vector TransactionQueue; class Collection { public: Collection(); - ~Collection(); + virtual ~Collection(); virtual void clear(); diff --git a/tests-manual/gpu-textures/src/main.cpp b/tests-manual/gpu-textures/src/main.cpp index 3d0051dc1d..70846b13b1 100644 --- a/tests-manual/gpu-textures/src/main.cpp +++ b/tests-manual/gpu-textures/src/main.cpp @@ -85,14 +85,12 @@ class MyTestWindow : public TestWindow { void updateCamera() { float t = _time.elapsed() * 1e-3f; - glm::vec3 unitscale{ 1.0f }; glm::vec3 up{ 0.0f, 1.0f, 0.0f }; float distance = 3.0f; glm::vec3 camera_position{ distance * sinf(t), 0.5f, distance * cosf(t) }; static const vec3 camera_focus(0); - static const vec3 camera_up(0, 1, 0); _camera = glm::inverse(glm::lookAt(camera_position, camera_focus, up)); ViewFrustum frustum; diff --git a/tests-manual/gpu/src/main.cpp b/tests-manual/gpu/src/main.cpp index 41d84ca026..f36e6a9abd 100644 --- a/tests-manual/gpu/src/main.cpp +++ b/tests-manual/gpu/src/main.cpp @@ -102,14 +102,12 @@ class MyTestWindow : public TestWindow { #ifdef INTERACTIVE t = _time.elapsed() * 1e-3f; #endif - glm::vec3 unitscale { 1.0f }; glm::vec3 up { 0.0f, 1.0f, 0.0f }; float distance = 3.0f; glm::vec3 camera_position { distance * sinf(t), 0.5f, distance * cosf(t) }; static const vec3 camera_focus(0); - static const vec3 camera_up(0, 1, 0); _camera = glm::inverse(glm::lookAt(camera_position, camera_focus, up)); ViewFrustum frustum;