From 275bac03251ccb1e01d419e402036d97893a77e0 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Fri, 4 Oct 2024 21:16:11 +1000 Subject: [PATCH] Better naming. --- .../include/Cesium3DTilesSelection/Tileset.h | 6 ++-- .../src/TileContentLoadInfo.cpp | 2 +- .../src/TileContentLoadInfo.h | 6 ++-- Cesium3DTilesSelection/src/Tileset.cpp | 10 +++---- .../src/TilesetContentManager.cpp | 10 +++---- .../src/TilesetContentManager.h | 6 ++-- .../src/TilesetJsonLoader.h | 4 +-- .../test/TestTilesetContentManager.cpp | 4 +-- .../include/CesiumGltf/SharedAssetDepot.h | 10 +++---- ...haredAssetDepots.h => SharedAssetSystem.h} | 28 +++++++++++-------- CesiumGltf/src/SharedAssetSystem.cpp | 17 +++++++++++ .../include/CesiumGltfReader/GltfReader.h | 4 +-- 12 files changed, 62 insertions(+), 45 deletions(-) rename CesiumGltf/include/CesiumGltf/{SharedAssetDepots.h => SharedAssetSystem.h} (58%) create mode 100644 CesiumGltf/src/SharedAssetSystem.cpp diff --git a/Cesium3DTilesSelection/include/Cesium3DTilesSelection/Tileset.h b/Cesium3DTilesSelection/include/Cesium3DTilesSelection/Tileset.h index 647a88c3a..09dbe01ac 100644 --- a/Cesium3DTilesSelection/include/Cesium3DTilesSelection/Tileset.h +++ b/Cesium3DTilesSelection/include/Cesium3DTilesSelection/Tileset.h @@ -184,10 +184,10 @@ class CESIUM3DTILESSELECTION_API Tileset final { /** * @brief Returns the {@link SharedAssetDepot} of this tileset. */ - CesiumGltf::SharedAssetDepots& getSharedAssetDepot() noexcept; + CesiumGltf::SharedAssetSystem& getSharedAssetSystem() noexcept; - /** @copydoc Tileset::getSharedAssetDepot() */ - const CesiumGltf::SharedAssetDepots& getSharedAssetDepot() const noexcept; + /** @copydoc Tileset::getSharedAssetSystem() */ + const CesiumGltf::SharedAssetSystem& getSharedAssetSystem() const noexcept; /** * @brief Updates this view but waits for all tiles that meet sse to finish diff --git a/Cesium3DTilesSelection/src/TileContentLoadInfo.cpp b/Cesium3DTilesSelection/src/TileContentLoadInfo.cpp index 99b0b71b8..b09c988cb 100644 --- a/Cesium3DTilesSelection/src/TileContentLoadInfo.cpp +++ b/Cesium3DTilesSelection/src/TileContentLoadInfo.cpp @@ -9,7 +9,7 @@ TileContentLoadInfo::TileContentLoadInfo( const std::shared_ptr& pPrepareRendererResources_, const std::shared_ptr& pLogger_, - const CesiumUtility::IntrusivePointer + const CesiumUtility::IntrusivePointer pAssetDepot_, const TilesetContentOptions& contentOptions_, const Tile& tile) diff --git a/Cesium3DTilesSelection/src/TileContentLoadInfo.h b/Cesium3DTilesSelection/src/TileContentLoadInfo.h index 9240c66d2..a887d1c60 100644 --- a/Cesium3DTilesSelection/src/TileContentLoadInfo.h +++ b/Cesium3DTilesSelection/src/TileContentLoadInfo.h @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include @@ -25,7 +25,7 @@ struct TileContentLoadInfo { const std::shared_ptr& pPrepareRendererResources, const std::shared_ptr& pLogger, - const CesiumUtility::IntrusivePointer + const CesiumUtility::IntrusivePointer maybeAssetDepot, const TilesetContentOptions& contentOptions, const Tile& tile); @@ -43,7 +43,7 @@ struct TileContentLoadInfo { BoundingVolume tileBoundingVolume; std::optional tileContentBoundingVolume; - CesiumUtility::IntrusivePointer pAssetDepot; + CesiumUtility::IntrusivePointer pAssetDepot; TileRefine tileRefine; diff --git a/Cesium3DTilesSelection/src/Tileset.cpp b/Cesium3DTilesSelection/src/Tileset.cpp index 4cd26a1f4..f5b1b7b5c 100644 --- a/Cesium3DTilesSelection/src/Tileset.cpp +++ b/Cesium3DTilesSelection/src/Tileset.cpp @@ -149,13 +149,13 @@ const RasterOverlayCollection& Tileset::getOverlays() const noexcept { return this->_pTilesetContentManager->getRasterOverlayCollection(); } -CesiumGltf::SharedAssetDepots& Tileset::getSharedAssetDepot() noexcept { - return *this->_pTilesetContentManager->getSharedAssetDepot(); +CesiumGltf::SharedAssetSystem& Tileset::getSharedAssetSystem() noexcept { + return *this->_pTilesetContentManager->getSharedAssetSystem(); } -const CesiumGltf::SharedAssetDepots& -Tileset::getSharedAssetDepot() const noexcept { - return *this->_pTilesetContentManager->getSharedAssetDepot(); +const CesiumGltf::SharedAssetSystem& +Tileset::getSharedAssetSystem() const noexcept { + return *this->_pTilesetContentManager->getSharedAssetSystem(); } static bool diff --git a/Cesium3DTilesSelection/src/TilesetContentManager.cpp b/Cesium3DTilesSelection/src/TilesetContentManager.cpp index fdbf3c981..cf0a8f223 100644 --- a/Cesium3DTilesSelection/src/TilesetContentManager.cpp +++ b/Cesium3DTilesSelection/src/TilesetContentManager.cpp @@ -666,7 +666,7 @@ TilesetContentManager::TilesetContentManager( _tileLoadsInProgress{0}, _loadedTilesCount{0}, _tilesDataUsed{0}, - _pAssetDepot(new CesiumGltf::SharedAssetDepots()), + _pAssetDepot(new CesiumGltf::SharedAssetSystem()), _destructionCompletePromise{externals.asyncSystem.createPromise()}, _destructionCompleteFuture{ this->_destructionCompletePromise.getFuture().share()}, @@ -696,7 +696,7 @@ TilesetContentManager::TilesetContentManager( _tileLoadsInProgress{0}, _loadedTilesCount{0}, _tilesDataUsed{0}, - _pAssetDepot(new CesiumGltf::SharedAssetDepots()), + _pAssetDepot(new CesiumGltf::SharedAssetSystem()), _destructionCompletePromise{externals.asyncSystem.createPromise()}, _destructionCompleteFuture{ this->_destructionCompletePromise.getFuture().share()}, @@ -848,7 +848,7 @@ TilesetContentManager::TilesetContentManager( _tileLoadsInProgress{0}, _loadedTilesCount{0}, _tilesDataUsed{0}, - _pAssetDepot(new CesiumGltf::SharedAssetDepots()), + _pAssetDepot(new CesiumGltf::SharedAssetSystem()), _destructionCompletePromise{externals.asyncSystem.createPromise()}, _destructionCompleteFuture{ this->_destructionCompletePromise.getFuture().share()}, @@ -1237,8 +1237,8 @@ TilesetContentManager::getTilesetCredits() const noexcept { return this->_tilesetCredits; } -const CesiumUtility::IntrusivePointer& -TilesetContentManager::getSharedAssetDepot() const noexcept { +const CesiumUtility::IntrusivePointer& +TilesetContentManager::getSharedAssetSystem() const noexcept { return this->_pAssetDepot; } diff --git a/Cesium3DTilesSelection/src/TilesetContentManager.h b/Cesium3DTilesSelection/src/TilesetContentManager.h index ce36425e7..5a58e77d6 100644 --- a/Cesium3DTilesSelection/src/TilesetContentManager.h +++ b/Cesium3DTilesSelection/src/TilesetContentManager.h @@ -116,8 +116,8 @@ class TilesetContentManager const std::vector& getTilesetCredits() const noexcept; - const CesiumUtility::IntrusivePointer& - getSharedAssetDepot() const noexcept; + const CesiumUtility::IntrusivePointer& + getSharedAssetSystem() const noexcept; int32_t getNumberOfTilesLoading() const noexcept; @@ -172,7 +172,7 @@ class TilesetContentManager int64_t _tilesDataUsed; // Stores assets that might be shared between tiles. - CesiumUtility::IntrusivePointer _pAssetDepot; + CesiumUtility::IntrusivePointer _pAssetDepot; CesiumAsync::Promise _destructionCompletePromise; CesiumAsync::SharedFuture _destructionCompleteFuture; diff --git a/Cesium3DTilesSelection/src/TilesetJsonLoader.h b/Cesium3DTilesSelection/src/TilesetJsonLoader.h index 615cb5ce6..0039edc6e 100644 --- a/Cesium3DTilesSelection/src/TilesetJsonLoader.h +++ b/Cesium3DTilesSelection/src/TilesetJsonLoader.h @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include @@ -56,7 +56,7 @@ class TilesetJsonLoader : public TilesetContentLoader { private: std::string _baseUrl; CesiumGeospatial::Ellipsoid _ellipsoid; - CesiumUtility::IntrusivePointer _pAssetDepot; + CesiumUtility::IntrusivePointer _pAssetDepot; /** * @brief The axis that was declared as the "up-axis" for glTF content. diff --git a/Cesium3DTilesSelection/test/TestTilesetContentManager.cpp b/Cesium3DTilesSelection/test/TestTilesetContentManager.cpp index 128ffc69d..f297c54d4 100644 --- a/Cesium3DTilesSelection/test/TestTilesetContentManager.cpp +++ b/Cesium3DTilesSelection/test/TestTilesetContentManager.cpp @@ -1682,9 +1682,7 @@ TEST_CASE("Test the tileset content manager's post processing for gltf") { CHECK(images.size() == 1); } - CHECK( - pManager->getSharedAssetDepot()->getImageDepot()->getDistinctCount() == - 2); + CHECK(pManager->getSharedAssetSystem()->image().getDistinctCount() == 2); // unload the tile content for (auto& child : containerTile.getChildren()) { diff --git a/CesiumGltf/include/CesiumGltf/SharedAssetDepot.h b/CesiumGltf/include/CesiumGltf/SharedAssetDepot.h index 66d983782..f039a0a3f 100644 --- a/CesiumGltf/include/CesiumGltf/SharedAssetDepot.h +++ b/CesiumGltf/include/CesiumGltf/SharedAssetDepot.h @@ -9,14 +9,12 @@ #include #include -#include -#include #include +#include #include #include #include -#include -#include +#include namespace CesiumGltf { @@ -184,8 +182,8 @@ class SharedAssetDepot : public CesiumUtility::ReferenceCountedThreadSafe< */ size_t getUsageCount() const { size_t count = 0; - for (auto& [key, item] : assets) { - count += item->counter; + for (const auto& [key, item] : assets) { + count += item->_referenceCount; } return count; } diff --git a/CesiumGltf/include/CesiumGltf/SharedAssetDepots.h b/CesiumGltf/include/CesiumGltf/SharedAssetSystem.h similarity index 58% rename from CesiumGltf/include/CesiumGltf/SharedAssetDepots.h rename to CesiumGltf/include/CesiumGltf/SharedAssetSystem.h index 31737cf95..a116b9136 100644 --- a/CesiumGltf/include/CesiumGltf/SharedAssetDepots.h +++ b/CesiumGltf/include/CesiumGltf/SharedAssetSystem.h @@ -1,19 +1,24 @@ #pragma once #include -#include +#include namespace CesiumGltf { +struct ImageCesium; + /** * @brief Contains assets that are potentially shared across multiple glTF * models. */ -class SharedAssetDepots - : public CesiumUtility::ReferenceCountedThreadSafe { +class SharedAssetSystem + : public CesiumUtility::ReferenceCountedThreadSafe { public: - SharedAssetDepots() = default; - void operator=(const SharedAssetDepots& other) = delete; + SharedAssetSystem() noexcept; + ~SharedAssetSystem() noexcept; + + SharedAssetSystem(const SharedAssetSystem&) = delete; + void operator=(const SharedAssetSystem& other) = delete; /** * Obtains an existing {@link ImageCesium} or constructs a new one using the provided factory. @@ -27,18 +32,17 @@ class SharedAssetDepots const Factory& factory, const std::string& uri, const std::vector& headers) { - return images - .getOrFetch(asyncSystem, pAssetAccessor, factory, uri, headers); + return this->_pImages + ->getOrFetch(asyncSystem, pAssetAccessor, factory, uri, headers); } - const SharedAssetDepot* getImageDepot() { - return &this->images; - } + const SharedAssetDepot& image(); - void deletionTick() { this->images.deletionTick(); } + void deletionTick(); private: - SharedAssetDepot images; + CesiumUtility::IntrusivePointer> + _pImages; }; } // namespace CesiumGltf diff --git a/CesiumGltf/src/SharedAssetSystem.cpp b/CesiumGltf/src/SharedAssetSystem.cpp new file mode 100644 index 000000000..7a3dd69b4 --- /dev/null +++ b/CesiumGltf/src/SharedAssetSystem.cpp @@ -0,0 +1,17 @@ +#include +#include + +namespace CesiumGltf { + +SharedAssetSystem::SharedAssetSystem() noexcept + : _pImages(new SharedAssetDepot()) {} + +SharedAssetSystem::~SharedAssetSystem() noexcept = default; + +const SharedAssetDepot& SharedAssetSystem::image() { + return *this->_pImages; +} + +void SharedAssetSystem::deletionTick() { this->_pImages->deletionTick(); } + +} // namespace CesiumGltf diff --git a/CesiumGltfReader/include/CesiumGltfReader/GltfReader.h b/CesiumGltfReader/include/CesiumGltfReader/GltfReader.h index f3c3b4cc5..a1e941bd7 100644 --- a/CesiumGltfReader/include/CesiumGltfReader/GltfReader.h +++ b/CesiumGltfReader/include/CesiumGltfReader/GltfReader.h @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include #include @@ -115,7 +115,7 @@ struct CESIUMGLTFREADER_API GltfReaderOptions { * appear in this glTF. If not present, assets will not be shared between * glTFs, even if they're loaded from the same URL. */ - CesiumUtility::IntrusivePointer pSharedAssets = + CesiumUtility::IntrusivePointer pSharedAssets = nullptr; };