#pragma once #include #include #include #include #include #include #include #include namespace mbgl { class RasterBucket : public Bucket { public: RasterBucket(PremultipliedImage&&); RasterBucket(std::shared_ptr); void upload(gl::Context&) override; void render(Painter&, PaintParameters&, const RenderLayer&, const RenderTile&) override; void render(Painter& painter, PaintParameters& parameters, const RenderLayer& layer, const mat4& matrix); bool hasData() const override; void clear(); void setImage(std::shared_ptr); std::shared_ptr image; optional texture; // Bucket specific vertices are used for Image Sources only // Raster Tile Sources use the default buffers from Painter gl::VertexVector vertices; gl::IndexVector indices; SegmentVector segments; optional> vertexBuffer; optional> indexBuffer; }; } // namespace mbgl