#pragma once #include #include #include #include #include #include #include #include #include namespace mbgl { class RasterBucket final : public Bucket { public: RasterBucket(PremultipliedImage&&); RasterBucket(std::shared_ptr); ~RasterBucket() override; void upload(gfx::UploadPass&) override; bool hasData() const override; bool supportsLayer(const style::Layer::Impl&) const override; void clear(); void setImage(std::shared_ptr); void setMask(TileMask&&); std::shared_ptr image; optional texture; TileMask mask{ { 0, 0, 0 } }; // Bucket specific vertices are used for Image Sources only // Raster Tile Sources use the default buffers from Painter gfx::VertexVector vertices; gfx::IndexVector indices; SegmentVector segments; optional> vertexBuffer; optional indexBuffer; const std::string drawScopeID; }; } // namespace mbgl