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 3bc91bdf16
commit dd507d79dc
3 changed files with 8 additions and 3 deletions
@@ -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;
}
@@ -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;
+4 -1
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;
}