Lazy init default tiles. Make TemporalTileProviders only use one default tile

This commit is contained in:
Erik Broberg
2016-07-08 12:46:46 -04:00
parent cb78456739
commit 35347b2d8d
3 changed files with 8 additions and 3 deletions

View File

@@ -64,6 +64,7 @@ namespace openspace {
// read file
std::string xml( (std::istreambuf_iterator<char>(in)), (std::istreambuf_iterator<char>()));
_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;
}

View File

@@ -161,6 +161,8 @@ namespace openspace {
std::unordered_map<TimeKey, std::shared_ptr<TileProvider> > _tileProviderMap;
TileProviderInitData _tileProviderInitData;
Tile _defaultTile;
std::shared_ptr<TileProvider> _currentTileProvider;
TimeFormat * _timeFormat;

View File

@@ -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;
}