summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mbgl/algorithm/update_renderables.hpp51
-rw-r--r--src/mbgl/style/source_impl.cpp55
-rw-r--r--test/algorithm/update_renderables.cpp237
3 files changed, 168 insertions, 175 deletions
diff --git a/src/mbgl/algorithm/update_renderables.hpp b/src/mbgl/algorithm/update_renderables.hpp
index d47a919bae..5a6a26f987 100644
--- a/src/mbgl/algorithm/update_renderables.hpp
+++ b/src/mbgl/algorithm/update_renderables.hpp
@@ -2,6 +2,7 @@
#include <mbgl/tile/tile_id.hpp>
#include <mbgl/util/range.hpp>
+#include <mbgl/storage/resource.hpp>
#include <set>
@@ -31,30 +32,30 @@ void updateRenderables(GetTileFn getTile,
assert(dataTileZoom >= idealRenderTileID.canonical.z);
const OverscaledTileID idealDataTileID(dataTileZoom, idealRenderTileID.canonical);
- auto data = getTile(idealDataTileID);
- if (!data) {
- data = createTile(idealDataTileID);
- assert(data);
+ auto tile = getTile(idealDataTileID);
+ if (!tile) {
+ tile = createTile(idealDataTileID);
+ assert(tile);
}
// if (source has the tile and bucket is loaded) {
- if (data->isRenderable()) {
- retainTile(*data, true);
- renderTile(idealRenderTileID, *data);
+ if (tile->isRenderable()) {
+ retainTile(*tile, Resource::Necessity::Required);
+ renderTile(idealRenderTileID, *tile);
} else {
- bool triedPrevious = data->hasTriedOptional();
+ bool triedPrevious = tile->hasTriedOptional();
// The tile isn't loaded yet, but retain it anyway because it's an ideal tile.
- retainTile(*data, true);
+ retainTile(*tile, Resource::Necessity::Required);
covered = true;
overscaledZ = dataTileZoom + 1;
if (overscaledZ > zoomRange.max) {
// We're looking for an overzoomed child tile.
const auto childDataTileID = idealDataTileID.scaledTo(overscaledZ);
- data = getTile(childDataTileID);
- if (data && data->isRenderable()) {
- retainTile(*data, false);
- renderTile(idealRenderTileID, *data);
+ tile = getTile(childDataTileID);
+ if (tile && tile->isRenderable()) {
+ retainTile(*tile, Resource::Necessity::Optional);
+ renderTile(idealRenderTileID, *tile);
} else {
covered = false;
}
@@ -62,10 +63,10 @@ void updateRenderables(GetTileFn getTile,
// Check all four actual child tiles.
for (const auto& childTileID : idealDataTileID.canonical.children()) {
const OverscaledTileID childDataTileID(overscaledZ, childTileID);
- data = getTile(childDataTileID);
- if (data && data->isRenderable()) {
- retainTile(*data, false);
- renderTile(childDataTileID.unwrapTo(idealRenderTileID.wrap), *data);
+ tile = getTile(childDataTileID);
+ if (tile && tile->isRenderable()) {
+ retainTile(*tile, Resource::Necessity::Optional);
+ renderTile(childDataTileID.unwrapTo(idealRenderTileID.wrap), *tile);
} else {
// At least one child tile doesn't exist, so we are going to look for
// parents as well.
@@ -89,17 +90,17 @@ void updateRenderables(GetTileFn getTile,
checked.emplace(parentRenderTileID);
}
- data = getTile(parentDataTileID);
- if (!data && triedPrevious) {
- data = createTile(parentDataTileID);
+ tile = getTile(parentDataTileID);
+ if (!tile && triedPrevious) {
+ tile = createTile(parentDataTileID);
}
- if (data) {
- triedPrevious = data->hasTriedOptional();
- retainTile(*data, false);
+ if (tile) {
+ triedPrevious = tile->hasTriedOptional();
+ retainTile(*tile, Resource::Necessity::Optional);
- if (data->isRenderable()) {
- renderTile(parentRenderTileID, *data);
+ if (tile->isRenderable()) {
+ renderTile(parentRenderTileID, *tile);
// Break parent tile ascent, since we found one.
break;
}
diff --git a/src/mbgl/style/source_impl.cpp b/src/mbgl/style/source_impl.cpp
index 9cdabe847f..6f4772bfac 100644
--- a/src/mbgl/style/source_impl.cpp
+++ b/src/mbgl/style/source_impl.cpp
@@ -89,7 +89,7 @@ bool Source::Impl::update(const UpdateParameters& parameters) {
// Determine the overzooming/underzooming amounts and required tiles.
int32_t overscaledZoom = util::coveringZoomLevel(parameters.transformState.getZoom(), type, tileSize);
- int32_t dataTileZoom = overscaledZoom;
+ int32_t tileZoom = overscaledZoom;
std::vector<UnwrappedTileID> idealTiles;
if (overscaledZoom >= zoomRange.min) {
@@ -97,48 +97,46 @@ bool Source::Impl::update(const UpdateParameters& parameters) {
// Make sure we're not reparsing overzoomed raster tiles.
if (type == SourceType::Raster) {
- dataTileZoom = idealZoom;
+ tileZoom = idealZoom;
}
idealTiles = util::tileCover(parameters.transformState, idealZoom);
}
- // Stores a list of all the data tiles that we're definitely going to retain. There are two
+ // Stores a list of all the tiles that we're definitely going to retain. There are two
// kinds of tiles we need: the ideal tiles determined by the tile cover. They may not yet be in
// use because they're still loading. In addition to that, we also need to retain all tiles that
// we're actively using, e.g. as a replacement for tile that aren't loaded yet.
std::set<OverscaledTileID> retain;
- auto retainTileFn = [&retain](Tile& tile, bool required) -> void {
+ auto retainTileFn = [&retain](Tile& tile, Resource::Necessity necessity) -> void {
retain.emplace(tile.id);
- tile.setNecessity(required ? Tile::Necessity::Required
- : Tile::Necessity::Optional);
+ tile.setNecessity(necessity);
};
auto getTileFn = [this](const OverscaledTileID& tileID) -> Tile* {
auto it = tiles.find(tileID);
return it == tiles.end() ? nullptr : it->second.get();
};
- auto createTileFn = [this, &parameters](const OverscaledTileID& dataTileID) -> Tile* {
- std::unique_ptr<Tile> data = cache.get(dataTileID);
- if (!data) {
- data = createTile(dataTileID, parameters);
- if (data) {
- data->setObserver(this);
+ auto createTileFn = [this, &parameters](const OverscaledTileID& tileID) -> Tile* {
+ std::unique_ptr<Tile> tile = cache.get(tileID);
+ if (!tile) {
+ tile = createTile(tileID, parameters);
+ if (tile) {
+ tile->setObserver(this);
}
}
- if (data) {
- return tiles.emplace(dataTileID, std::move(data)).first->second.get();
- } else {
+ if (!tile) {
return nullptr;
}
+ return tiles.emplace(tileID, std::move(tile)).first->second.get();
};
- auto renderTileFn = [this](const UnwrappedTileID& renderTileID, Tile& tile) {
- renderTiles.emplace(renderTileID, RenderTile{ renderTileID, tile });
+ auto renderTileFn = [this](const UnwrappedTileID& tileID, Tile& tile) {
+ renderTiles.emplace(tileID, RenderTile{ tileID, tile });
};
renderTiles.clear();
algorithm::updateRenderables(getTileFn, createTileFn, retainTileFn, renderTileFn,
- idealTiles, zoomRange, dataTileZoom);
+ idealTiles, zoomRange, tileZoom);
if (type != SourceType::Raster && type != SourceType::Annotations && cache.getSize() == 0) {
size_t conservativeCacheSize =
@@ -149,19 +147,18 @@ bool Source::Impl::update(const UpdateParameters& parameters) {
cache.setSize(conservativeCacheSize);
}
- // Remove stale data tiles from the active set of tiles.
- // This goes through the (sorted!) tiles and retain set in lockstep and removes items from
- // tiles that don't have the corresponding key in the retain set.
- auto dataIt = tiles.begin();
+ // Remove stale tiles. This goes through the (sorted!) tiles map and retain set in lockstep
+ // and removes items from tiles that don't have the corresponding key in the retain set.
+ auto tilesIt = tiles.begin();
auto retainIt = retain.begin();
- while (dataIt != tiles.end()) {
- if (retainIt == retain.end() || dataIt->first < *retainIt) {
- dataIt->second->setNecessity(Tile::Necessity::Optional);
- cache.add(dataIt->first, std::move(dataIt->second));
- tiles.erase(dataIt++);
+ while (tilesIt != tiles.end()) {
+ if (retainIt == retain.end() || tilesIt->first < *retainIt) {
+ tilesIt->second->setNecessity(Tile::Necessity::Optional);
+ cache.add(tilesIt->first, std::move(tilesIt->second));
+ tiles.erase(tilesIt++);
} else {
- if (!(*retainIt < dataIt->first)) {
- ++dataIt;
+ if (!(*retainIt < tilesIt->first)) {
+ ++tilesIt;
}
++retainIt;
}
diff --git a/test/algorithm/update_renderables.cpp b/test/algorithm/update_renderables.cpp
index dcc43a83f3..c284c37475 100644
--- a/test/algorithm/update_renderables.cpp
+++ b/test/algorithm/update_renderables.cpp
@@ -43,14 +43,9 @@ std::ostream& operator<<(std::ostream& os, const CreateTileDataAction& action) {
<< action.tileID.canonical.y << " } } }";
}
-enum Necessity : bool {
- Optional = false,
- Required = true,
-};
-
struct RetainTileDataAction {
const OverscaledTileID tileID;
- const Necessity necessity;
+ const Resource::Necessity necessity;
bool operator==(const RetainTileDataAction& rhs) const {
return tileID == rhs.tileID && necessity == rhs.necessity;
@@ -61,7 +56,7 @@ std::ostream& operator<<(std::ostream& os, const RetainTileDataAction& action) {
return os << "RetainTileDataAction{ { " << int(action.tileID.overscaledZ) << ", { "
<< int(action.tileID.canonical.z) << ", " << action.tileID.canonical.x << ", "
<< action.tileID.canonical.y << " } }, "
- << (action.necessity == Required ? "Required" : "Optional") << " }";
+ << (action.necessity == Resource::Necessity::Required ? "Required" : "Optional") << " }";
}
struct RenderTileAction {
@@ -106,8 +101,8 @@ auto createTileDataFn(ActionLog& log, T& dataTiles) {
}
auto retainTileDataFn(ActionLog& log) {
- return [&](auto& tileData, bool required) {
- log.emplace_back(RetainTileDataAction{ tileData.tileID, required ? Required : Optional });
+ return [&](auto& tileData, Resource::Necessity necessity) {
+ log.emplace_back(RetainTileDataAction{ tileData.tileID, necessity });
};
}
@@ -135,7 +130,7 @@ TEST(UpdateRenderables, SingleTile) {
source.idealTiles, source.zoomRange, 1);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 1, { 1, 1, 1 } }, Found }, // found ideal tile
- RetainTileDataAction{ { 1, { 1, 1, 1 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 1, 1 } }, Resource::Necessity::Required }, //
RenderTileAction{ { 1, 1, 1 }, *tile_1_1_1_1 }, // render ideal tile
}),
log);
@@ -146,7 +141,7 @@ TEST(UpdateRenderables, SingleTile) {
source.idealTiles, source.zoomRange, 1);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 1, { 1, 1, 1 } }, Found }, // found ideal tile
- RetainTileDataAction{ { 1, { 1, 1, 1 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 1, 1 } }, Resource::Necessity::Required }, //
RenderTileAction{ { 1, 1, 1 }, *tile_1_1_1_1 }, // render ideal tile
}),
log);
@@ -159,7 +154,7 @@ TEST(UpdateRenderables, SingleTile) {
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 1, { 1, 0, 1 } }, NotFound }, // missing ideal tile
CreateTileDataAction{ { 1, { 1, 0, 1 } } }, // create ideal tile
- RetainTileDataAction{ { 1, { 1, 0, 1 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 0, 1 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 2, { 2, 0, 2 } }, NotFound }, // four child tiles
GetTileDataAction{ { 2, { 2, 0, 3 } }, NotFound }, // ...
GetTileDataAction{ { 2, { 2, 1, 2 } }, NotFound }, // ...
@@ -167,7 +162,7 @@ TEST(UpdateRenderables, SingleTile) {
GetTileDataAction{ { 0, { 0, 0, 0 } }, NotFound }, // parent tile
GetTileDataAction{ { 1, { 1, 1, 1 } }, Found }, // found ideal tile
- RetainTileDataAction{ { 1, { 1, 1, 1 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 1, 1 } }, Resource::Necessity::Required }, //
RenderTileAction{ { 1, 1, 1 }, *tile_1_1_1_1 }, // render found tile
}),
log);
@@ -179,17 +174,17 @@ TEST(UpdateRenderables, SingleTile) {
source.idealTiles, source.zoomRange, 1);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 1, { 1, 0, 1 } }, Found }, // missing ideal tile
- RetainTileDataAction{ { 1, { 1, 0, 1 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 0, 1 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 2, { 2, 0, 2 } }, NotFound }, // four child tiles
GetTileDataAction{ { 2, { 2, 0, 3 } }, NotFound }, // ...
GetTileDataAction{ { 2, { 2, 1, 2 } }, NotFound }, // ...
GetTileDataAction{ { 2, { 2, 1, 3 } }, NotFound }, // ...
GetTileDataAction{ { 0, { 0, 0, 0 } }, NotFound }, // parent tile
CreateTileDataAction{ { 0, { 0, 0, 0 } } }, // load parent tile
- RetainTileDataAction{ { 0, { 0, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 0, { 0, 0, 0 } }, Resource::Necessity::Optional }, //
GetTileDataAction{ { 1, { 1, 1, 1 } }, Found }, // found ideal tile
- RetainTileDataAction{ { 1, { 1, 1, 1 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 1, 1 } }, Resource::Necessity::Required }, //
RenderTileAction{ { 1, 1, 1 }, *tile_1_1_1_1 }, // render found tile
}),
log);
@@ -202,11 +197,11 @@ TEST(UpdateRenderables, SingleTile) {
source.idealTiles, source.zoomRange, 1);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 1, { 1, 0, 1 } }, Found }, // newly added tile
- RetainTileDataAction{ { 1, { 1, 0, 1 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 0, 1 } }, Resource::Necessity::Required }, //
RenderTileAction{ { 1, 0, 1 }, *tile_1_1_0_1 }, // render ideal tile
GetTileDataAction{ { 1, { 1, 1, 1 } }, Found }, // ideal tile
- RetainTileDataAction{ { 1, { 1, 1, 1 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 1, 1 } }, Resource::Necessity::Required }, //
RenderTileAction{ { 1, 1, 1 }, *tile_1_1_1_1 }, // render found tile
}),
log);
@@ -221,21 +216,21 @@ TEST(UpdateRenderables, SingleTile) {
source.idealTiles, source.zoomRange, 1);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 1, { 1, 0, 0 } }, Found }, // found tile, not ready
- RetainTileDataAction{ { 1, { 1, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 2, { 2, 0, 0 } }, NotFound }, // four child tiles
GetTileDataAction{ { 2, { 2, 0, 1 } }, NotFound }, // ...
GetTileDataAction{ { 2, { 2, 1, 0 } }, NotFound }, // ...
GetTileDataAction{ { 2, { 2, 1, 1 } }, NotFound }, // ...
GetTileDataAction{ { 0, { 0, 0, 0 } }, Found }, // parent tile
- RetainTileDataAction{ { 0, { 0, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 0, { 0, 0, 0 } }, Resource::Necessity::Optional }, //
// optional parent tile was already created before, but is not renderable
GetTileDataAction{ { 1, { 1, 0, 1 } }, Found }, // ideal tile
- RetainTileDataAction{ { 1, { 1, 0, 1 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 0, 1 } }, Resource::Necessity::Required }, //
RenderTileAction{ { 1, 0, 1 }, *tile_1_1_0_1 }, // render ideal tile
GetTileDataAction{ { 1, { 1, 1, 1 } }, Found }, // ideal tile
- RetainTileDataAction{ { 1, { 1, 1, 1 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 1, 1 } }, Resource::Necessity::Required }, //
RenderTileAction{ { 1, 1, 1 }, *tile_1_1_1_1 }, // render ideal tile
}),
log);
@@ -247,15 +242,15 @@ TEST(UpdateRenderables, SingleTile) {
source.idealTiles, source.zoomRange, 1);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 1, { 1, 0, 0 } }, Found }, // found tile, now ready
- RetainTileDataAction{ { 1, { 1, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 0, 0 } }, Resource::Necessity::Required }, //
RenderTileAction{ { 1, 0, 0 }, *tile_1_1_0_0 }, //
GetTileDataAction{ { 1, { 1, 0, 1 } }, Found }, // ideal tile
- RetainTileDataAction{ { 1, { 1, 0, 1 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 0, 1 } }, Resource::Necessity::Required }, //
RenderTileAction{ { 1, 0, 1 }, *tile_1_1_0_1 }, //
GetTileDataAction{ { 1, { 1, 1, 1 } }, Found }, // ideal tile
- RetainTileDataAction{ { 1, { 1, 1, 1 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 1, 1 } }, Resource::Necessity::Required }, //
RenderTileAction{ { 1, 1, 1 }, *tile_1_1_1_1 }, //
}),
log);
@@ -281,24 +276,24 @@ TEST(UpdateRenderables, UseParentTile) {
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 1, { 1, 0, 1 } }, NotFound }, // missing ideal tile
CreateTileDataAction{ { 1, { 1, 0, 1 } } }, //
- RetainTileDataAction{ { 1, { 1, 0, 1 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 0, 1 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 2, { 2, 0, 2 } }, NotFound }, // child tile
GetTileDataAction{ { 2, { 2, 0, 3 } }, NotFound }, // ...
GetTileDataAction{ { 2, { 2, 1, 2 } }, NotFound }, // ...
GetTileDataAction{ { 2, { 2, 1, 3 } }, NotFound }, // ...
GetTileDataAction{ { 0, { 0, 0, 0 } }, Found }, // parent found!
- RetainTileDataAction{ { 0, { 0, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 0, { 0, 0, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 0, 0, 0 }, *tile_0_0_0_0 }, // render parent
GetTileDataAction{ { 1, { 1, 1, 0 } }, NotFound }, // missing ideal tile
CreateTileDataAction{ { 1, { 1, 1, 0 } } }, //
- RetainTileDataAction{ { 1, { 1, 1, 0 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 1, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 2, { 2, 2, 0 } }, NotFound }, // child tile
GetTileDataAction{ { 2, { 2, 2, 1 } }, NotFound }, // ...
GetTileDataAction{ { 2, { 2, 3, 0 } }, NotFound }, // ...
GetTileDataAction{ { 2, { 2, 3, 1 } }, NotFound }, // ...
GetTileDataAction{ { 1, { 1, 1, 1 } }, NotFound }, // missing tile
CreateTileDataAction{ { 1, { 1, 1, 1 } } }, //
- RetainTileDataAction{ { 1, { 1, 1, 1 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 1, 1 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 2, { 2, 2, 2 } }, NotFound }, // child tile
GetTileDataAction{ { 2, { 2, 2, 3 } }, NotFound }, // ...
GetTileDataAction{ { 2, { 2, 3, 2 } }, NotFound }, // ...
@@ -324,7 +319,7 @@ TEST(UpdateRenderables, DontUseWrongParentTile) {
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 2, { 2, 0, 0 } }, NotFound }, // missing ideal tile
CreateTileDataAction{ { 2, { 2, 0, 0 } } }, //
- RetainTileDataAction{ { 2, { 2, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 2, { 2, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 3, { 3, 0, 0 } }, NotFound }, // child tile
GetTileDataAction{ { 3, { 3, 0, 1 } }, NotFound }, // ...
GetTileDataAction{ { 3, { 3, 1, 0 } }, NotFound }, // ...
@@ -341,14 +336,14 @@ TEST(UpdateRenderables, DontUseWrongParentTile) {
source.idealTiles, source.zoomRange, 2);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 2, { 2, 0, 0 } }, Found }, // non-ready ideal tile
- RetainTileDataAction{ { 2, { 2, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 2, { 2, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 3, { 3, 0, 0 } }, NotFound }, // child tile
GetTileDataAction{ { 3, { 3, 0, 1 } }, NotFound }, // ...
GetTileDataAction{ { 3, { 3, 1, 0 } }, NotFound }, // ...
GetTileDataAction{ { 3, { 3, 1, 1 } }, NotFound }, // ...
GetTileDataAction{ { 1, { 1, 0, 0 } }, NotFound }, // parent tile, missing
CreateTileDataAction{ { 1, { 1, 0, 0 } } }, // find optional parent
- RetainTileDataAction{ { 1, { 1, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 1, { 1, 0, 0 } }, Resource::Necessity::Optional }, //
GetTileDataAction{ { 0, { 0, 0, 0 } }, NotFound }, // parent tile, missing
}),
log);
@@ -360,25 +355,25 @@ TEST(UpdateRenderables, DontUseWrongParentTile) {
source.idealTiles, source.zoomRange, 2);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 2, { 2, 0, 0 } }, Found }, // non-ready ideal tile
- RetainTileDataAction{ { 2, { 2, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 2, { 2, 0, 0 } }, Resource::Necessity::Required }, //
// this tile was added by the previous invocation of updateRenderables
GetTileDataAction{ { 3, { 3, 0, 0 } }, NotFound }, // child tile
GetTileDataAction{ { 3, { 3, 0, 1 } }, NotFound }, // ...
GetTileDataAction{ { 3, { 3, 1, 0 } }, NotFound }, // ...
GetTileDataAction{ { 3, { 3, 1, 1 } }, NotFound }, // ...
GetTileDataAction{ { 1, { 1, 0, 0 } }, Found }, // parent tile not ready
- RetainTileDataAction{ { 1, { 1, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 1, { 1, 0, 0 } }, Resource::Necessity::Optional }, //
GetTileDataAction{ { 0, { 0, 0, 0 } }, NotFound }, // missing parent tile
GetTileDataAction{ { 2, { 2, 2, 0 } }, NotFound }, // missing ideal tile
CreateTileDataAction{ { 2, { 2, 2, 0 } } }, //
- RetainTileDataAction{ { 2, { 2, 2, 0 } }, Required }, //
+ RetainTileDataAction{ { 2, { 2, 2, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 3, { 3, 4, 0 } }, NotFound }, // child tile
GetTileDataAction{ { 3, { 3, 4, 1 } }, NotFound }, // ...
GetTileDataAction{ { 3, { 3, 5, 0 } }, NotFound }, // ...
GetTileDataAction{ { 3, { 3, 5, 1 } }, NotFound }, // ...
GetTileDataAction{ { 1, { 1, 1, 0 } }, Found }, // found parent tile
- RetainTileDataAction{ { 1, { 1, 1, 0 } }, Optional }, //
+ RetainTileDataAction{ { 1, { 1, 1, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 1, 1, 0 }, *tile_1_1_1_0 }, // render parent tile
}),
log);
@@ -405,13 +400,13 @@ TEST(UpdateRenderables, UseParentTileWhenChildNotReady) {
source.idealTiles, source.zoomRange, 1);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 1, { 1, 0, 1 } }, Found }, // found, but not ready
- RetainTileDataAction{ { 1, { 1, 0, 1 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 0, 1 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 2, { 2, 0, 2 } }, NotFound }, // child tile
GetTileDataAction{ { 2, { 2, 0, 3 } }, NotFound }, // ...
GetTileDataAction{ { 2, { 2, 1, 2 } }, NotFound }, // ...
GetTileDataAction{ { 2, { 2, 1, 3 } }, NotFound }, // ...
GetTileDataAction{ { 0, { 0, 0, 0 } }, Found }, // parent tile, ready
- RetainTileDataAction{ { 0, { 0, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 0, { 0, 0, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 0, 0, 0 }, *tile_0_0_0_0 }, // render parent tile
}),
log);
@@ -423,7 +418,7 @@ TEST(UpdateRenderables, UseParentTileWhenChildNotReady) {
source.idealTiles, source.zoomRange, 1);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 1, { 1, 0, 1 } }, Found }, // found and ready
- RetainTileDataAction{ { 1, { 1, 0, 1 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 0, 1 } }, Resource::Necessity::Required }, //
RenderTileAction{ { 1, 0, 1 }, *tile_1_1_0_1 }, // render ideal tile
}),
log);
@@ -451,17 +446,17 @@ TEST(UpdateRenderables, UseOverlappingParentTile) {
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 1, { 1, 0, 0 } }, NotFound }, // ideal tile not found
CreateTileDataAction{ { 1, { 1, 0, 0 } } }, //
- RetainTileDataAction{ { 1, { 1, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 2, { 2, 0, 0 } }, NotFound }, // child tile
GetTileDataAction{ { 2, { 2, 0, 1 } }, NotFound }, // ...
GetTileDataAction{ { 2, { 2, 1, 0 } }, NotFound }, // ...
GetTileDataAction{ { 2, { 2, 1, 1 } }, NotFound }, // ...
GetTileDataAction{ { 0, { 0, 0, 0 } }, Found }, // parent tile found
- RetainTileDataAction{ { 0, { 0, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 0, { 0, 0, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 0, 0, 0 }, *tile_0_0_0_0 }, //
GetTileDataAction{ { 1, { 1, 0, 1 } }, Found }, // ideal tile found
- RetainTileDataAction{ { 1, { 1, 0, 1 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 0, 1 } }, Resource::Necessity::Required }, //
RenderTileAction{ { 1, 0, 1 }, *tile_1_1_0_1 }, //
}),
log);
@@ -487,13 +482,13 @@ TEST(UpdateRenderables, UseChildTiles) {
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 0, { 0, 0, 0 } }, NotFound }, // ideal tile, missing
CreateTileDataAction{ { 0, { 0, 0, 0 } } }, //
- RetainTileDataAction{ { 0, { 0, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 0, { 0, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 1, { 1, 0, 0 } }, Found }, // child tile found
- RetainTileDataAction{ { 1, { 1, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 1, { 1, 0, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 1, 0, 0 }, *tile_1_1_0_0 }, // render child tile
GetTileDataAction{ { 1, { 1, 0, 1 } }, NotFound }, // child tile not found
GetTileDataAction{ { 1, { 1, 1, 0 } }, Found }, // child tile found
- RetainTileDataAction{ { 1, { 1, 1, 0 } }, Optional }, //
+ RetainTileDataAction{ { 1, { 1, 1, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 1, 1, 0 }, *tile_1_1_1_0 }, // render child tile
GetTileDataAction{ { 1, { 1, 1, 1 } }, NotFound }, // child tile not found
// no parent tile of 0 to consider
@@ -521,15 +516,15 @@ TEST(UpdateRenderables, PreferChildTiles) {
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 1, { 1, 0, 0 } }, NotFound }, // ideal tile, not found
CreateTileDataAction{ { 1, { 1, 0, 0 } } }, //
- RetainTileDataAction{ { 1, { 1, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 2, { 2, 0, 0 } }, Found }, // child tile, found
- RetainTileDataAction{ { 2, { 2, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 2, { 2, 0, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 2, 0, 0 }, *tile_2_2_0_0 }, //
GetTileDataAction{ { 2, { 2, 0, 1 } }, NotFound }, // child tile, not found
GetTileDataAction{ { 2, { 2, 1, 0 } }, NotFound }, // ...
GetTileDataAction{ { 2, { 2, 1, 1 } }, NotFound }, // ...
GetTileDataAction{ { 0, { 0, 0, 0 } }, Found }, // parent tile, found
- RetainTileDataAction{ { 0, { 0, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 0, { 0, 0, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 0, 0, 0 }, *tile_0_0_0_0 }, //
}),
log);
@@ -544,17 +539,17 @@ TEST(UpdateRenderables, PreferChildTiles) {
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 1, { 1, 0, 0 } }, Found }, // ideal tile, not ready
// ideal tile was added in previous invocation, but is not yet ready
- RetainTileDataAction{ { 1, { 1, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 2, { 2, 0, 0 } }, Found }, // child tile, found
- RetainTileDataAction{ { 2, { 2, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 2, { 2, 0, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 2, 0, 0 }, *tile_2_2_0_0 }, //
GetTileDataAction{ { 2, { 2, 0, 1 } }, Found }, // ...
- RetainTileDataAction{ { 2, { 2, 0, 1 } }, Optional }, // ...
+ RetainTileDataAction{ { 2, { 2, 0, 1 } }, Resource::Necessity::Optional }, // ...
RenderTileAction{ { 2, 0, 1 }, *tile_2_2_0_1 }, //
GetTileDataAction{ { 2, { 2, 1, 0 } }, NotFound }, // child tile, not found
GetTileDataAction{ { 2, { 2, 1, 1 } }, NotFound }, // ...
GetTileDataAction{ { 0, { 0, 0, 0 } }, Found }, // parent tile, found
- RetainTileDataAction{ { 0, { 0, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 0, { 0, 0, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 0, 0, 0 }, *tile_0_0_0_0 }, //
}),
log);
@@ -567,19 +562,19 @@ TEST(UpdateRenderables, PreferChildTiles) {
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 1, { 1, 0, 0 } }, Found }, // ideal tile, not ready
// ideal tile was added in first invocation, but is not yet ready
- RetainTileDataAction{ { 1, { 1, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 2, { 2, 0, 0 } }, Found }, // child tile, found
- RetainTileDataAction{ { 2, { 2, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 2, { 2, 0, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 2, 0, 0 }, *tile_2_2_0_0 }, //
GetTileDataAction{ { 2, { 2, 0, 1 } }, Found }, // ...
- RetainTileDataAction{ { 2, { 2, 0, 1 } }, Optional }, //
+ RetainTileDataAction{ { 2, { 2, 0, 1 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 2, 0, 1 }, *tile_2_2_0_1 }, //
GetTileDataAction{ { 2, { 2, 1, 0 } }, Found }, // ...
- RetainTileDataAction{ { 2, { 2, 1, 0 } }, Optional }, //
+ RetainTileDataAction{ { 2, { 2, 1, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 2, 1, 0 }, *tile_2_2_1_0 }, //
GetTileDataAction{ { 2, { 2, 1, 1 } }, NotFound }, // child tile, not found
GetTileDataAction{ { 0, { 0, 0, 0 } }, Found }, // parent tile, found
- RetainTileDataAction{ { 0, { 0, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 0, { 0, 0, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 0, 0, 0 }, *tile_0_0_0_0 }, //
}),
log);
@@ -593,18 +588,18 @@ TEST(UpdateRenderables, PreferChildTiles) {
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 1, { 1, 0, 0 } }, Found }, // ideal tile, not ready
// ideal tile was added in first invocation, but is not yet ready
- RetainTileDataAction{ { 1, { 1, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 2, { 2, 0, 0 } }, Found }, // child tile, found
- RetainTileDataAction{ { 2, { 2, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 2, { 2, 0, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 2, 0, 0 }, *tile_2_2_0_0 }, //
GetTileDataAction{ { 2, { 2, 0, 1 } }, Found }, // ...
- RetainTileDataAction{ { 2, { 2, 0, 1 } }, Optional }, //
+ RetainTileDataAction{ { 2, { 2, 0, 1 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 2, 0, 1 }, *tile_2_2_0_1 }, //
GetTileDataAction{ { 2, { 2, 1, 0 } }, Found }, // ...
- RetainTileDataAction{ { 2, { 2, 1, 0 } }, Optional }, //
+ RetainTileDataAction{ { 2, { 2, 1, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 2, 1, 0 }, *tile_2_2_1_0 }, //
GetTileDataAction{ { 2, { 2, 1, 1 } }, Found }, // ...
- RetainTileDataAction{ { 2, { 2, 1, 1 } }, Optional }, //
+ RetainTileDataAction{ { 2, { 2, 1, 1 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 2, 1, 1 }, *tile_2_2_1_1 }, //
}),
log);
@@ -631,15 +626,15 @@ TEST(UpdateRenderables, UseParentAndChildTiles) {
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 1, { 1, 0, 0 } }, NotFound }, // ideal tile, missing
CreateTileDataAction{ { 1, { 1, 0, 0 } } }, //
- RetainTileDataAction{ { 1, { 1, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 2, { 2, 0, 0 } }, Found }, // child tile
- RetainTileDataAction{ { 2, { 2, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 2, { 2, 0, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 2, 0, 0 }, *tile_2_2_0_0 }, //
GetTileDataAction{ { 2, { 2, 0, 1 } }, NotFound }, //
GetTileDataAction{ { 2, { 2, 1, 0 } }, NotFound }, //
GetTileDataAction{ { 2, { 2, 1, 1 } }, NotFound }, //
GetTileDataAction{ { 0, { 0, 0, 0 } }, Found }, // parent tile
- RetainTileDataAction{ { 0, { 0, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 0, { 0, 0, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 0, 0, 0 }, *tile_0_0_0_0 }, //
}),
log);
@@ -651,13 +646,13 @@ TEST(UpdateRenderables, UseParentAndChildTiles) {
source.idealTiles, source.zoomRange, 1);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 1, { 1, 0, 0 } }, Found }, // ideal tile, not ready
- RetainTileDataAction{ { 1, { 1, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 2, { 2, 0, 0 } }, NotFound }, //
GetTileDataAction{ { 2, { 2, 0, 1 } }, NotFound }, //
GetTileDataAction{ { 2, { 2, 1, 0 } }, NotFound }, //
GetTileDataAction{ { 2, { 2, 1, 1 } }, NotFound }, //
GetTileDataAction{ { 0, { 0, 0, 0 } }, Found }, // parent tile
- RetainTileDataAction{ { 0, { 0, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 0, { 0, 0, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 0, 0, 0 }, *tile_0_0_0_0 }, //
}),
log);
@@ -682,7 +677,7 @@ TEST(UpdateRenderables, DontUseTilesLowerThanMinzoom) {
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 2, { 2, 0, 0 } }, NotFound }, // ideal tile, missing
CreateTileDataAction{ { 2, { 2, 0, 0 } } }, //
- RetainTileDataAction{ { 2, { 2, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 2, { 2, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 3, { 3, 0, 0 } }, NotFound }, //
GetTileDataAction{ { 3, { 3, 0, 1 } }, NotFound }, //
GetTileDataAction{ { 3, { 3, 1, 0 } }, NotFound }, //
@@ -712,7 +707,7 @@ TEST(UpdateRenderables, UseOverzoomedTileAfterMaxzoom) {
ActionLog({
GetTileDataAction{ { 2, { 2, 0, 0 } }, NotFound }, // ideal tile, missing
CreateTileDataAction{ { 2, { 2, 0, 0 } } }, //
- RetainTileDataAction{ { 2, { 2, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 2, { 2, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 3, { 2, 0, 0 } }, NotFound }, // overzoomed tile, not children!
GetTileDataAction{ { 1, { 1, 0, 0 } }, NotFound }, //
GetTileDataAction{ { 0, { 0, 0, 0 } }, NotFound }, //
@@ -727,11 +722,11 @@ TEST(UpdateRenderables, UseOverzoomedTileAfterMaxzoom) {
EXPECT_EQ(
ActionLog({
GetTileDataAction{ { 2, { 2, 0, 0 } }, Found }, // ideal tile, missing
- RetainTileDataAction{ { 2, { 2, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 2, { 2, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 3, { 2, 0, 0 } }, NotFound }, // overzoomed tile, not children!
GetTileDataAction{ { 1, { 1, 0, 0 } }, NotFound }, //
CreateTileDataAction{ { 1, { 1, 0, 0 } } }, //
- RetainTileDataAction{ { 1, { 1, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 1, { 1, 0, 0 } }, Resource::Necessity::Optional }, //
GetTileDataAction{ { 0, { 0, 0, 0 } }, NotFound }, //
}),
log);
@@ -745,10 +740,10 @@ TEST(UpdateRenderables, UseOverzoomedTileAfterMaxzoom) {
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 3, { 2, 0, 0 } }, NotFound }, // ideal tile, missing
CreateTileDataAction{ { 3, { 2, 0, 0 } } }, //
- RetainTileDataAction{ { 3, { 2, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 3, { 2, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 4, { 2, 0, 0 } }, NotFound }, //
GetTileDataAction{ { 2, { 2, 0, 0 } }, Found }, //
- RetainTileDataAction{ { 2, { 2, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 2, { 2, 0, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 2, 0, 0 }, *tile_2_2_0_0 }, //
}),
log);
@@ -761,7 +756,7 @@ TEST(UpdateRenderables, UseOverzoomedTileAfterMaxzoom) {
source.idealTiles, source.zoomRange, 3);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 3, { 2, 0, 0 } }, Found }, //
- RetainTileDataAction{ { 3, { 2, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 3, { 2, 0, 0 } }, Resource::Necessity::Required }, //
RenderTileAction{ { 2, 0, 0 }, *tile_3_2_0_0 }, //
}),
log);
@@ -772,7 +767,7 @@ TEST(UpdateRenderables, UseOverzoomedTileAfterMaxzoom) {
source.idealTiles, source.zoomRange, 2);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 2, { 2, 0, 0 } }, Found }, //
- RetainTileDataAction{ { 2, { 2, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 2, { 2, 0, 0 } }, Resource::Necessity::Required }, //
RenderTileAction{ { 2, 0, 0 }, *tile_2_2_0_0 }, //
}),
log);
@@ -788,9 +783,9 @@ TEST(UpdateRenderables, UseOverzoomedTileAfterMaxzoom) {
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 2, { 2, 0, 0 } }, NotFound }, //
CreateTileDataAction{ { 2, { 2, 0, 0 } } }, //
- RetainTileDataAction{ { 2, { 2, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 2, { 2, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 3, { 2, 0, 0 } }, Found }, // use overzoomed tile!
- RetainTileDataAction{ { 3, { 2, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 3, { 2, 0, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 2, 0, 0 }, *tile_3_2_0_0 }, //
}),
log);
@@ -814,7 +809,7 @@ TEST(UpdateRenderables, AscendToNonOverzoomedTiles) {
source.idealTiles, source.zoomRange, 3);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 3, { 2, 0, 0 } }, Found }, //
- RetainTileDataAction{ { 3, { 2, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 3, { 2, 0, 0 } }, Resource::Necessity::Required }, //
RenderTileAction{ { 2, 0, 0 }, *tile_3_2_0_0 }, //
}),
log);
@@ -830,10 +825,10 @@ TEST(UpdateRenderables, AscendToNonOverzoomedTiles) {
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 3, { 2, 0, 0 } }, NotFound }, //
CreateTileDataAction{ { 3, { 2, 0, 0 } } }, //
- RetainTileDataAction{ { 3, { 2, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 3, { 2, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 4, { 2, 0, 0 } }, NotFound }, // prefer using a child first
GetTileDataAction{ { 2, { 2, 0, 0 } }, Found }, //
- RetainTileDataAction{ { 2, { 2, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 2, { 2, 0, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 2, 0, 0 }, *tile_2_2_0_0 }, //
}),
log);
@@ -848,11 +843,11 @@ TEST(UpdateRenderables, AscendToNonOverzoomedTiles) {
source.idealTiles, source.zoomRange, 3);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 3, { 2, 0, 0 } }, Found }, // ideal tile, not ready
- RetainTileDataAction{ { 3, { 2, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 3, { 2, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 4, { 2, 0, 0 } }, NotFound }, //
GetTileDataAction{ { 2, { 2, 0, 0 } }, NotFound }, //
GetTileDataAction{ { 1, { 1, 0, 0 } }, Found }, //
- RetainTileDataAction{ { 1, { 1, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 1, { 1, 0, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 1, 0, 0 }, *tile_1_1_0_0 }, //
}),
log);
@@ -864,13 +859,13 @@ TEST(UpdateRenderables, AscendToNonOverzoomedTiles) {
source.idealTiles, source.zoomRange, 3);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 3, { 2, 0, 0 } }, Found }, // ideal tile, not ready
- RetainTileDataAction{ { 3, { 2, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 3, { 2, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 4, { 2, 0, 0 } }, NotFound }, //
GetTileDataAction{ { 2, { 2, 0, 0 } }, NotFound }, //
CreateTileDataAction{ { 2, { 2, 0, 0 } } }, //
- RetainTileDataAction{ { 2, { 2, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 2, { 2, 0, 0 } }, Resource::Necessity::Optional }, //
GetTileDataAction{ { 1, { 1, 0, 0 } }, Found }, //
- RetainTileDataAction{ { 1, { 1, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 1, { 1, 0, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 1, 0, 0 }, *tile_1_1_0_0 }, //
}),
log);
@@ -892,7 +887,7 @@ TEST(UpdateRenderables, DoNotAscendMultipleTimesIfNotFound) {
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 8, { 8, 0, 0 } }, NotFound }, // ideal tile
CreateTileDataAction{ { 8, { 8, 0, 0 } } }, //
- RetainTileDataAction{ { 8, { 8, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 8, { 8, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 9, { 9, 0, 0 } }, NotFound }, // child tile
GetTileDataAction{ { 9, { 9, 0, 1 } }, NotFound }, // ...
GetTileDataAction{ { 9, { 9, 1, 0 } }, NotFound }, // ...
@@ -908,7 +903,7 @@ TEST(UpdateRenderables, DoNotAscendMultipleTimesIfNotFound) {
GetTileDataAction{ { 8, { 8, 1, 0 } }, NotFound }, // ideal tile
CreateTileDataAction{ { 8, { 8, 1, 0 } } }, //
- RetainTileDataAction{ { 8, { 8, 1, 0 } }, Required }, //
+ RetainTileDataAction{ { 8, { 8, 1, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 9, { 9, 2, 0 } }, NotFound }, // child tile
GetTileDataAction{ { 9, { 9, 2, 1 } }, NotFound }, // ...
GetTileDataAction{ { 9, { 9, 3, 0 } }, NotFound }, // ...
@@ -926,7 +921,7 @@ TEST(UpdateRenderables, DoNotAscendMultipleTimesIfNotFound) {
source.idealTiles, source.zoomRange, 8);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 8, { 8, 0, 0 } }, Found }, // ideal tile, not ready
- RetainTileDataAction{ { 8, { 8, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 8, { 8, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 9, { 9, 0, 0 } }, NotFound }, // child tile
GetTileDataAction{ { 9, { 9, 0, 1 } }, NotFound }, // ...
GetTileDataAction{ { 9, { 9, 1, 0 } }, NotFound }, // ...
@@ -935,11 +930,11 @@ TEST(UpdateRenderables, DoNotAscendMultipleTimesIfNotFound) {
GetTileDataAction{ { 6, { 6, 0, 0 } }, NotFound }, // ...
GetTileDataAction{ { 5, { 5, 0, 0 } }, NotFound }, // ...
GetTileDataAction{ { 4, { 4, 0, 0 } }, Found }, // stops ascent
- RetainTileDataAction{ { 4, { 4, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 4, { 4, 0, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 4, 0, 0 }, *tile_4_0_0_0 }, //
GetTileDataAction{ { 8, { 8, 1, 0 } }, Found }, // ideal tile, not ready
- RetainTileDataAction{ { 8, { 8, 1, 0 } }, Required }, //
+ RetainTileDataAction{ { 8, { 8, 1, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 9, { 9, 2, 0 } }, NotFound }, // child tile
GetTileDataAction{ { 9, { 9, 2, 1 } }, NotFound }, // ...
GetTileDataAction{ { 9, { 9, 3, 0 } }, NotFound }, // ...
@@ -966,13 +961,13 @@ TEST(UpdateRenderables, DontRetainUnusedNonIdealTiles) {
source.idealTiles, source.zoomRange, 2);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 2, { 2, 0, 0 } }, Found }, // ideal tile, not ready
- RetainTileDataAction{ { 2, { 2, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 2, { 2, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 3, { 3, 0, 0 } }, NotFound }, //
GetTileDataAction{ { 3, { 3, 0, 1 } }, NotFound }, //
GetTileDataAction{ { 3, { 3, 1, 0 } }, NotFound }, //
GetTileDataAction{ { 3, { 3, 1, 1 } }, NotFound }, //
GetTileDataAction{ { 1, { 1, 0, 0 } }, Found }, // parent tile, not ready
- RetainTileDataAction{ { 1, { 1, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 1, { 1, 0, 0 } }, Resource::Necessity::Optional }, //
GetTileDataAction{ { 0, { 0, 0, 0 } }, NotFound }, //
}),
log);
@@ -999,28 +994,28 @@ TEST(UpdateRenderables, WrappedTiles) {
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 1, { 1, 1, 0 } }, NotFound }, // ideal tile 1/-1/0
CreateTileDataAction{ { 1, { 1, 1, 0 } } }, //
- RetainTileDataAction{ { 1, { 1, 1, 0 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 1, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 2, { 2, 2, 0 } }, NotFound }, //
GetTileDataAction{ { 2, { 2, 2, 1 } }, NotFound }, //
GetTileDataAction{ { 2, { 2, 3, 0 } }, NotFound }, //
GetTileDataAction{ { 2, { 2, 3, 1 } }, NotFound }, //
GetTileDataAction{ { 0, { 0, 0, 0 } }, Found }, //
- RetainTileDataAction{ { 0, { 0, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 0, { 0, 0, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 0, -1, 0 }, *tile_0_0_0_0 }, //
GetTileDataAction{ { 1, { 1, 0, 0 } }, NotFound }, // ideal tile 1/0/0
CreateTileDataAction{ { 1, { 1, 0, 0 } } }, //
- RetainTileDataAction{ { 1, { 1, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 2, { 2, 0, 0 } }, NotFound }, //
GetTileDataAction{ { 2, { 2, 0, 1 } }, NotFound }, //
GetTileDataAction{ { 2, { 2, 1, 0 } }, NotFound }, //
GetTileDataAction{ { 2, { 2, 1, 1 } }, NotFound }, //
GetTileDataAction{ { 0, { 0, 0, 0 } }, Found }, //
- RetainTileDataAction{ { 0, { 0, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 0, { 0, 0, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 0, 0, 0 }, *tile_0_0_0_0 }, //
GetTileDataAction{ { 1, { 1, 1, 0 } }, Found }, // ideal tile 1/1/0
- RetainTileDataAction{ { 1, { 1, 1, 0 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 1, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 2, { 2, 2, 0 } }, NotFound }, //
GetTileDataAction{ { 2, { 2, 2, 1 } }, NotFound }, //
GetTileDataAction{ { 2, { 2, 3, 0 } }, NotFound }, //
@@ -1028,13 +1023,13 @@ TEST(UpdateRenderables, WrappedTiles) {
// do not ascent; 0/0/0 has been rendered already for 1/0/0
GetTileDataAction{ { 1, { 1, 0, 0 } }, Found }, // ideal tile 1/2/0
- RetainTileDataAction{ { 1, { 1, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 1, { 1, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 2, { 2, 0, 0 } }, NotFound }, //
GetTileDataAction{ { 2, { 2, 0, 1 } }, NotFound }, //
GetTileDataAction{ { 2, { 2, 1, 0 } }, NotFound }, //
GetTileDataAction{ { 2, { 2, 1, 1 } }, NotFound }, //
GetTileDataAction{ { 0, { 0, 0, 0 } }, Found }, //
- RetainTileDataAction{ { 0, { 0, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 0, { 0, 0, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 0, 1, 0 }, *tile_0_0_0_0 }, //
}),
log);
@@ -1055,7 +1050,7 @@ TEST(UpdateRenderables, RepeatedRenderWithMissingOptionals) {
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 6, { 6, 0, 0 } }, NotFound }, // ideal tile, not found
CreateTileDataAction{ { 6, { 6, 0, 0 } } }, //
- RetainTileDataAction{ { 6, { 6, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 6, { 6, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 7, { 7, 0, 0 } }, NotFound }, // children
GetTileDataAction{ { 7, { 7, 0, 1 } }, NotFound }, // ...
GetTileDataAction{ { 7, { 7, 1, 0 } }, NotFound }, // ...
@@ -1075,7 +1070,7 @@ TEST(UpdateRenderables, RepeatedRenderWithMissingOptionals) {
source.idealTiles, source.zoomRange, 6);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 6, { 6, 0, 0 } }, Found }, // ideal tile, not ready
- RetainTileDataAction{ { 6, { 6, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 6, { 6, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 7, { 7, 0, 0 } }, NotFound }, // children
GetTileDataAction{ { 7, { 7, 0, 1 } }, NotFound }, // ...
GetTileDataAction{ { 7, { 7, 1, 0 } }, NotFound }, // ...
@@ -1096,14 +1091,14 @@ TEST(UpdateRenderables, RepeatedRenderWithMissingOptionals) {
source.idealTiles, source.zoomRange, 6);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 6, { 6, 0, 0 } }, Found }, // ideal tile, not ready
- RetainTileDataAction{ { 6, { 6, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 6, { 6, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 7, { 7, 0, 0 } }, NotFound }, // children
GetTileDataAction{ { 7, { 7, 0, 1 } }, NotFound }, // ...
GetTileDataAction{ { 7, { 7, 1, 0 } }, NotFound }, // ...
GetTileDataAction{ { 7, { 7, 1, 1 } }, NotFound }, // ...
GetTileDataAction{ { 5, { 5, 0, 0 } }, NotFound }, // ascent
CreateTileDataAction{ { 5, { 5, 0, 0 } } }, //
- RetainTileDataAction{ { 5, { 5, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 5, { 5, 0, 0 } }, Resource::Necessity::Optional }, //
GetTileDataAction{ { 4, { 4, 0, 0 } }, NotFound }, // ...
GetTileDataAction{ { 3, { 3, 0, 0 } }, NotFound }, // ...
GetTileDataAction{ { 2, { 2, 0, 0 } }, NotFound }, // ...
@@ -1118,13 +1113,13 @@ TEST(UpdateRenderables, RepeatedRenderWithMissingOptionals) {
source.idealTiles, source.zoomRange, 6);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 6, { 6, 0, 0 } }, Found }, // ideal tile, not ready
- RetainTileDataAction{ { 6, { 6, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 6, { 6, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 7, { 7, 0, 0 } }, NotFound }, // children
GetTileDataAction{ { 7, { 7, 0, 1 } }, NotFound }, // ...
GetTileDataAction{ { 7, { 7, 1, 0 } }, NotFound }, // ...
GetTileDataAction{ { 7, { 7, 1, 1 } }, NotFound }, // ...
GetTileDataAction{ { 5, { 5, 0, 0 } }, Found }, // ascent
- RetainTileDataAction{ { 5, { 5, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 5, { 5, 0, 0 } }, Resource::Necessity::Optional }, //
GetTileDataAction{ { 4, { 4, 0, 0 } }, NotFound }, // ...
GetTileDataAction{ { 3, { 3, 0, 0 } }, NotFound }, // ...
GetTileDataAction{ { 2, { 2, 0, 0 } }, NotFound }, // ...
@@ -1140,16 +1135,16 @@ TEST(UpdateRenderables, RepeatedRenderWithMissingOptionals) {
source.idealTiles, source.zoomRange, 6);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 6, { 6, 0, 0 } }, Found }, // ideal tile, not ready
- RetainTileDataAction{ { 6, { 6, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 6, { 6, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 7, { 7, 0, 0 } }, NotFound }, // children
GetTileDataAction{ { 7, { 7, 0, 1 } }, NotFound }, // ...
GetTileDataAction{ { 7, { 7, 1, 0 } }, NotFound }, // ...
GetTileDataAction{ { 7, { 7, 1, 1 } }, NotFound }, // ...
GetTileDataAction{ { 5, { 5, 0, 0 } }, Found }, // ascent
- RetainTileDataAction{ { 5, { 5, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 5, { 5, 0, 0 } }, Resource::Necessity::Optional }, //
GetTileDataAction{ { 4, { 4, 0, 0 } }, NotFound }, // ...
CreateTileDataAction{ { 4, { 4, 0, 0 } } }, //
- RetainTileDataAction{ { 4, { 4, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 4, { 4, 0, 0 } }, Resource::Necessity::Optional }, //
GetTileDataAction{ { 3, { 3, 0, 0 } }, NotFound }, // ...
GetTileDataAction{ { 2, { 2, 0, 0 } }, NotFound }, // ...
GetTileDataAction{ { 1, { 1, 0, 0 } }, NotFound }, // ...
@@ -1164,18 +1159,18 @@ TEST(UpdateRenderables, RepeatedRenderWithMissingOptionals) {
source.idealTiles, source.zoomRange, 6);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 6, { 6, 0, 0 } }, Found }, // ideal tile, not ready
- RetainTileDataAction{ { 6, { 6, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 6, { 6, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 7, { 7, 0, 0 } }, NotFound }, // children
GetTileDataAction{ { 7, { 7, 0, 1 } }, NotFound }, // ...
GetTileDataAction{ { 7, { 7, 1, 0 } }, NotFound }, // ...
GetTileDataAction{ { 7, { 7, 1, 1 } }, NotFound }, // ...
GetTileDataAction{ { 5, { 5, 0, 0 } }, Found }, // ascent
- RetainTileDataAction{ { 5, { 5, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 5, { 5, 0, 0 } }, Resource::Necessity::Optional }, //
GetTileDataAction{ { 4, { 4, 0, 0 } }, Found }, // ...
- RetainTileDataAction{ { 4, { 4, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 4, { 4, 0, 0 } }, Resource::Necessity::Optional }, //
GetTileDataAction{ { 3, { 3, 0, 0 } }, NotFound }, // ...
CreateTileDataAction{ { 3, { 3, 0, 0 } } }, //
- RetainTileDataAction{ { 3, { 3, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 3, { 3, 0, 0 } }, Resource::Necessity::Optional }, //
GetTileDataAction{ { 2, { 2, 0, 0 } }, NotFound }, // ...
GetTileDataAction{ { 1, { 1, 0, 0 } }, NotFound }, // ...
GetTileDataAction{ { 0, { 0, 0, 0 } }, NotFound }, // ...
@@ -1189,20 +1184,20 @@ TEST(UpdateRenderables, RepeatedRenderWithMissingOptionals) {
source.idealTiles, source.zoomRange, 6);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 6, { 6, 0, 0 } }, Found }, // ideal tile, not ready
- RetainTileDataAction{ { 6, { 6, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 6, { 6, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 7, { 7, 0, 0 } }, NotFound }, // children
GetTileDataAction{ { 7, { 7, 0, 1 } }, NotFound }, // ...
GetTileDataAction{ { 7, { 7, 1, 0 } }, NotFound }, // ...
GetTileDataAction{ { 7, { 7, 1, 1 } }, NotFound }, // ...
GetTileDataAction{ { 5, { 5, 0, 0 } }, Found }, // ascent
- RetainTileDataAction{ { 5, { 5, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 5, { 5, 0, 0 } }, Resource::Necessity::Optional }, //
GetTileDataAction{ { 4, { 4, 0, 0 } }, Found }, // ...
- RetainTileDataAction{ { 4, { 4, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 4, { 4, 0, 0 } }, Resource::Necessity::Optional }, //
GetTileDataAction{ { 3, { 3, 0, 0 } }, Found }, // ...
- RetainTileDataAction{ { 3, { 3, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 3, { 3, 0, 0 } }, Resource::Necessity::Optional }, //
GetTileDataAction{ { 2, { 2, 0, 0 } }, NotFound }, // ...
CreateTileDataAction{ { 2, { 2, 0, 0 } } }, //
- RetainTileDataAction{ { 2, { 2, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 2, { 2, 0, 0 } }, Resource::Necessity::Optional }, //
GetTileDataAction{ { 1, { 1, 0, 0 } }, NotFound }, // ...
GetTileDataAction{ { 0, { 0, 0, 0 } }, NotFound }, // ...
}),
@@ -1216,17 +1211,17 @@ TEST(UpdateRenderables, RepeatedRenderWithMissingOptionals) {
source.idealTiles, source.zoomRange, 6);
EXPECT_EQ(ActionLog({
GetTileDataAction{ { 6, { 6, 0, 0 } }, Found }, // ideal tile, not ready
- RetainTileDataAction{ { 6, { 6, 0, 0 } }, Required }, //
+ RetainTileDataAction{ { 6, { 6, 0, 0 } }, Resource::Necessity::Required }, //
GetTileDataAction{ { 7, { 7, 0, 0 } }, NotFound }, // children
GetTileDataAction{ { 7, { 7, 0, 1 } }, NotFound }, // ...
GetTileDataAction{ { 7, { 7, 1, 0 } }, NotFound }, // ...
GetTileDataAction{ { 7, { 7, 1, 1 } }, NotFound }, // ...
GetTileDataAction{ { 5, { 5, 0, 0 } }, Found }, // ascent
- RetainTileDataAction{ { 5, { 5, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 5, { 5, 0, 0 } }, Resource::Necessity::Optional }, //
GetTileDataAction{ { 4, { 4, 0, 0 } }, Found }, // ...
- RetainTileDataAction{ { 4, { 4, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 4, { 4, 0, 0 } }, Resource::Necessity::Optional }, //
GetTileDataAction{ { 3, { 3, 0, 0 } }, Found }, // ...
- RetainTileDataAction{ { 3, { 3, 0, 0 } }, Optional }, //
+ RetainTileDataAction{ { 3, { 3, 0, 0 } }, Resource::Necessity::Optional }, //
RenderTileAction{ { 3, 0, 0 }, *tile_3_3_0_0 }, //
}),
log);