summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/render_source.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/renderer/render_source.hpp')
-rw-r--r--src/mbgl/renderer/render_source.hpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/mbgl/renderer/render_source.hpp b/src/mbgl/renderer/render_source.hpp
index d9af901664..fc770f83cf 100644
--- a/src/mbgl/renderer/render_source.hpp
+++ b/src/mbgl/renderer/render_source.hpp
@@ -30,6 +30,7 @@ class CollisionIndex;
class TransformParameters;
class ImageManager;
class ImageSourceRenderData;
+class RenderItem;
namespace gfx {
class UploadPass;
@@ -42,6 +43,8 @@ public:
const ImageManager& imageManager;
};
+using RenderTiles = std::vector<std::reference_wrapper<const RenderTile>>;
+
class RenderSource : protected TileObserver {
public:
static std::unique_ptr<RenderSource> create(Immutable<style::Source::Impl>);
@@ -55,14 +58,14 @@ public:
bool needsRendering,
bool needsRelayout,
const TileParameters&) = 0;
-
- virtual void upload(gfx::UploadPass&) = 0;
+ // Note: calling of this method might reset the contained render data.
+ virtual std::unique_ptr<RenderItem> createRenderItem() = 0;
+ // Creates the render data to be passed to the render item.
virtual void prepare(const SourcePrepareParameters&) = 0;
- virtual void finishRender(PaintParameters&) = 0;
virtual void updateFadingTiles() = 0;
virtual bool hasFadingTiles() const = 0;
// Returns a list of RenderTiles, sorted by tile id.
- virtual std::vector<std::reference_wrapper<RenderTile>> getRenderTiles() = 0;
+ virtual RenderTiles getRenderTiles() = 0;
virtual const ImageSourceRenderData* getImageRenderData() const { return nullptr; }
virtual const Tile* getRenderedTile(const UnwrappedTileID&) const { return nullptr; }