[core] refactor updateRenderables algorithm

This commit is contained in:
Konstantin Käfer
2016-05-24 16:58:09 +02:00
parent ebff2234e4
commit 1b8d280e3f
4 changed files with 865 additions and 283 deletions

View File

@@ -15,26 +15,10 @@ struct MockSourceInfo {
struct MockTileData;
struct MockRenderable {
MockRenderable(mbgl::UnwrappedTileID id_, MockTileData& data_) : id(id_), data(data_) {}
const mbgl::UnwrappedTileID id;
MockTileData& data;
bool operator==(const MockRenderable& rhs) const {
return &data == &rhs.data;
}
};
::std::ostream& operator<<(::std::ostream& os, const MockRenderable&) {
return os << "Renderable{}";
}
struct MockSource {
MockSourceInfo info;
std::map<mbgl::OverscaledTileID, std::unique_ptr<MockTileData>> dataTiles;
std::set<mbgl::UnwrappedTileID> idealTiles;
std::map<mbgl::UnwrappedTileID, MockRenderable> renderables;
// Test API
inline MockTileData* createTileData(const mbgl::OverscaledTileID& tileID);
@@ -44,14 +28,16 @@ struct MockBucket {};
struct MockTileData {
MockTileData(const mbgl::OverscaledTileID& tileID_) : tileID(tileID_) {}
bool isRenderable() {
return ready;
return renderable;
}
bool ready = false;
bool renderable = false;
const mbgl::OverscaledTileID tileID;
};
MockTileData* MockSource::createTileData(const mbgl::OverscaledTileID& tileID) {
// Replace the existing MockTileData object, if any.
return (dataTiles[tileID] = std::make_unique<MockTileData>()).get();
return (dataTiles[tileID] = std::make_unique<MockTileData>(tileID)).get();
}

File diff suppressed because it is too large Load Diff