From 35347b2d8d264e4dacb9cac1dc284ee3c5bf9332 Mon Sep 17 00:00:00 2001 From: Erik Broberg Date: Fri, 8 Jul 2016 12:46:46 -0400 Subject: [PATCH] Lazy init default tiles. Make TemporalTileProviders only use one default tile --- modules/globebrowsing/tile/temporaltileprovider.cpp | 4 ++-- modules/globebrowsing/tile/temporaltileprovider.h | 2 ++ modules/globebrowsing/tile/tileprovider.cpp | 5 ++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/modules/globebrowsing/tile/temporaltileprovider.cpp b/modules/globebrowsing/tile/temporaltileprovider.cpp index 0cb19c2f6e..d6fc22a713 100644 --- a/modules/globebrowsing/tile/temporaltileprovider.cpp +++ b/modules/globebrowsing/tile/temporaltileprovider.cpp @@ -64,6 +64,7 @@ namespace openspace { // read file std::string xml( (std::istreambuf_iterator(in)), (std::istreambuf_iterator())); _gdalXmlTemplate = consumeTemporalMetaData(xml); + _defaultTile = getTileProvider()->getDefaultTile(); } std::string TemporalTileProvider::consumeTemporalMetaData(const std::string& xml) { @@ -124,8 +125,7 @@ namespace openspace { } Tile TemporalTileProvider::getDefaultTile() { - ensureUpdated(); - return _currentTileProvider->getDefaultTile(); + return _defaultTile; } diff --git a/modules/globebrowsing/tile/temporaltileprovider.h b/modules/globebrowsing/tile/temporaltileprovider.h index 956afe860e..c526c9e37b 100644 --- a/modules/globebrowsing/tile/temporaltileprovider.h +++ b/modules/globebrowsing/tile/temporaltileprovider.h @@ -161,6 +161,8 @@ namespace openspace { std::unordered_map > _tileProviderMap; TileProviderInitData _tileProviderInitData; + Tile _defaultTile; + std::shared_ptr _currentTileProvider; TimeFormat * _timeFormat; diff --git a/modules/globebrowsing/tile/tileprovider.cpp b/modules/globebrowsing/tile/tileprovider.cpp index 1ee95a1fea..e1381d5424 100644 --- a/modules/globebrowsing/tile/tileprovider.cpp +++ b/modules/globebrowsing/tile/tileprovider.cpp @@ -104,7 +104,7 @@ namespace openspace { , _framesUntilRequestFlush(framesUntilFlushRequestQueue) , _framesSinceLastRequestFlush(0) { - _defaultTile = createTile(_asyncTextureDataProvider->getTextureDataProvider()->defaultTileData()); + } @@ -146,6 +146,9 @@ namespace openspace { } Tile CachingTileProvider::getDefaultTile() { + if (_defaultTile.texture == nullptr) { + _defaultTile = createTile(_asyncTextureDataProvider->getTextureDataProvider()->defaultTileData()); + } return _defaultTile; }