From bc715e1a749bb2b7624f305bcf228ac83d6574f4 Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Mon, 5 May 2025 14:41:05 +0200 Subject: [PATCH] Turn ResetTileProviders in RenderableGlobe into a button --- modules/globebrowsing/src/renderableglobe.cpp | 7 ++++--- modules/globebrowsing/src/renderableglobe.h | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/globebrowsing/src/renderableglobe.cpp b/modules/globebrowsing/src/renderableglobe.cpp index fb5229535c..2f550172d0 100644 --- a/modules/globebrowsing/src/renderableglobe.cpp +++ b/modules/globebrowsing/src/renderableglobe.cpp @@ -604,7 +604,7 @@ RenderableGlobe::RenderableGlobe(const ghoul::Dictionary& dictionary) , _debugProperties({ BoolProperty(ShowChunkEdgeInfo, false), BoolProperty(LevelProjectedAreaInfo, true), - BoolProperty(ResetTileProviderInfo, false), + TriggerProperty(ResetTileProviderInfo), BoolProperty(PerformFrustumCullingInfo, true), IntProperty(ModelSpaceRenderingInfo, 14, 1, 22), IntProperty(DynamicLodIterationCountInfo, 16, 4, 128) @@ -728,6 +728,7 @@ RenderableGlobe::RenderableGlobe(const ghoul::Dictionary& dictionary) _debugPropertyOwner.addProperty(_debugProperties.showChunkEdges); _debugPropertyOwner.addProperty(_debugProperties.levelByProjectedAreaElseDistance); + _debugProperties.resetTileProviders.onChange([&]() { _resetTileProviders = true; }); _debugPropertyOwner.addProperty(_debugProperties.resetTileProviders); _debugPropertyOwner.addProperty(_debugProperties.performFrustumCulling); _debugPropertyOwner.addProperty(_debugProperties.modelSpaceRenderingCutoffLevel); @@ -998,9 +999,9 @@ void RenderableGlobe::update(const UpdateData& data) { _cachedModelTransform = translation * rotation * scaling; _cachedInverseModelTransform = glm::inverse(_cachedModelTransform); - if (_debugProperties.resetTileProviders) { + if (_resetTileProviders) [[unlikely]] { _layerManager.reset(); - _debugProperties.resetTileProviders = false; + _resetTileProviders = false; } if (_ringsComponent) { diff --git a/modules/globebrowsing/src/renderableglobe.h b/modules/globebrowsing/src/renderableglobe.h index ce0192e4d3..3473c593af 100644 --- a/modules/globebrowsing/src/renderableglobe.h +++ b/modules/globebrowsing/src/renderableglobe.h @@ -240,7 +240,7 @@ private: struct { properties::BoolProperty showChunkEdges; properties::BoolProperty levelByProjectedAreaElseDistance; - properties::BoolProperty resetTileProviders; + properties::TriggerProperty resetTileProviders; properties::BoolProperty performFrustumCulling; properties::IntProperty modelSpaceRenderingCutoffLevel; properties::IntProperty dynamicLodIterationCount; @@ -300,6 +300,7 @@ private: bool _nLayersIsDirty = true; bool _allChunksAvailable = true; bool _layerManagerDirty = true; + bool _resetTileProviders = false; size_t _iterationsOfAvailableData = 0; size_t _iterationsOfUnavailableData = 0; Layer* _lastChangedLayer = nullptr;