summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/render_layer.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/renderer/render_layer.hpp')
-rw-r--r--src/mbgl/renderer/render_layer.hpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/mbgl/renderer/render_layer.hpp b/src/mbgl/renderer/render_layer.hpp
index 8d17e318f2..04753fc674 100644
--- a/src/mbgl/renderer/render_layer.hpp
+++ b/src/mbgl/renderer/render_layer.hpp
@@ -86,7 +86,10 @@ public:
ImageDependencies&) const {
return nullptr;
}
- void setRenderTiles(std::vector<std::reference_wrapper<RenderTile>>);
+
+ using RenderTiles = std::vector<std::reference_wrapper<RenderTile>>;
+ void setRenderTiles(RenderTiles, const TransformState&);
+
// Private implementation
Immutable<style::Layer::Impl> baseImpl;
void setImpl(Immutable<style::Layer::Impl>);
@@ -98,6 +101,12 @@ protected:
// in the console to inform the developer.
void checkRenderability(const PaintParameters&, uint32_t activeBindingCount);
+ // Code specific to RenderTiles sorting / filtering
+ virtual RenderTiles filterRenderTiles(RenderTiles) const;
+ virtual void sortRenderTiles(const TransformState&);
+ using FilterFunctionPtr = bool (*)(RenderTile&);
+ RenderTiles filterRenderTiles(RenderTiles, FilterFunctionPtr) const;
+
protected:
// renderTiles are exposed directly to CrossTileSymbolIndex and Placement so they
// can update opacities in the symbol buckets immediately before rendering
@@ -111,7 +120,7 @@ protected:
RenderPass passes = RenderPass::None;
private:
- // Some layers may not render correctly on some hardware when the vertex attribute limit of
+ // Some layers may not render correctly on some hardware when the vertex attribute limit of
// that GPU is exceeded. More attributes are used when adding many data driven paint properties
// to a layer.
bool hasRenderFailures = false;