summaryrefslogtreecommitdiff
path: root/src/mbgl/tile/geometry_tile.hpp
diff options
context:
space:
mode:
authorChris Loer <chris.loer@gmail.com>2017-11-14 15:30:27 -0800
committerChris Loer <chris.loer@mapbox.com>2017-11-17 10:05:15 -0800
commit25cfb5863c9ac3705d2bcf4086c237608264e3ae (patch)
treee142caa7789b0f23e2633ef5f920a869f6e14d91 /src/mbgl/tile/geometry_tile.hpp
parentd69c1c4806038fec756672d80cef7691c5280c6a (diff)
downloadqtlocation-mapboxgl-25cfb5863c9ac3705d2bcf4086c237608264e3ae.tar.gz
[core] Symbol cross-fading.
Hold onto tiles after they've been removed from the render tree long enough to run a fade animation on their symbols.
Diffstat (limited to 'src/mbgl/tile/geometry_tile.hpp')
-rw-r--r--src/mbgl/tile/geometry_tile.hpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/mbgl/tile/geometry_tile.hpp b/src/mbgl/tile/geometry_tile.hpp
index 442d84244e..6f871819a4 100644
--- a/src/mbgl/tile/geometry_tile.hpp
+++ b/src/mbgl/tile/geometry_tile.hpp
@@ -97,6 +97,11 @@ public:
void resetCrossTileIDs() override;
+ bool holdForFade() const override;
+ void markRenderedIdeal() override;
+ void markRenderedPreviously() override;
+ void performedFadePlacement() override;
+
protected:
const GeometryTileData* getData() {
return data.get();
@@ -130,7 +135,15 @@ private:
const MapMode mode;
bool showCollisionBoxes;
+
+ enum class FadeState {
+ Loaded,
+ NeedsFirstPlacement,
+ NeedsSecondPlacement,
+ CanRemove
+ };
+ FadeState fadeState = FadeState::Loaded;
public:
optional<gl::Texture> glyphAtlasTexture;
optional<gl::Texture> iconAtlasTexture;