summaryrefslogtreecommitdiff
path: root/src/mbgl/tile/raster_tile.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/tile/raster_tile.hpp')
-rw-r--r--src/mbgl/tile/raster_tile.hpp21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/mbgl/tile/raster_tile.hpp b/src/mbgl/tile/raster_tile.hpp
index 1f6ceef0db..ce13d2cafc 100644
--- a/src/mbgl/tile/raster_tile.hpp
+++ b/src/mbgl/tile/raster_tile.hpp
@@ -10,6 +10,7 @@ namespace mbgl {
class Tileset;
namespace style {
+class Style;
class Layer;
class UpdateParameters;
} // namespace style
@@ -17,8 +18,9 @@ class UpdateParameters;
class RasterTile : public Tile {
public:
RasterTile(const OverscaledTileID&,
- const style::UpdateParameters&,
- const Tileset&);
+ std::string sourceID,
+ const style::UpdateParameters&,
+ const Tileset&);
~RasterTile() final;
void setNecessity(Necessity) final;
@@ -29,20 +31,27 @@ public:
optional<Timestamp> expires_);
void cancel() override;
+
+ class ParseResult {
+ public:
+ std::unordered_map<std::string, std::unique_ptr<Bucket>> buckets;
+ };
+
Bucket* getBucket(const style::Layer&) override;
- void onParsed(std::unique_ptr<Bucket> result);
+ void onParsed(ParseResult);
void onError(std::exception_ptr);
private:
TileLoader<RasterTile> loader;
+ const std::string sourceID;
+ style::Style& style;
+
std::shared_ptr<Mailbox> mailbox;
Actor<RasterTileWorker> worker;
- // Contains the Bucket object for the tile. Buckets are render
- // objects and they get added by tile parsing operations.
- std::unique_ptr<Bucket> bucket;
+ std::unordered_map<std::string, std::unique_ptr<Bucket>> buckets;
};
} // namespace mbgl