diff options
author | Alexander Shalamov <alexander.shalamov@mapbox.com> | 2018-10-24 17:13:27 +0300 |
---|---|---|
committer | Alexander Shalamov <alexander.shalamov@mapbox.com> | 2018-11-19 14:06:21 +0200 |
commit | f6ad5f378e9a0741b7d3c293cb91466ba2770e36 (patch) | |
tree | 9c15b4f46a84460822dbdb0b760dd46758b102f9 /src/mbgl/renderer/render_layer.hpp | |
parent | 006ee8b0034eab7096c53a7ca4eddf7226880161 (diff) | |
download | qtlocation-mapboxgl-f6ad5f378e9a0741b7d3c293cb91466ba2770e36.tar.gz |
[core] Move RenderTile filtering / sorting logic to render layers
Diffstat (limited to 'src/mbgl/renderer/render_layer.hpp')
-rw-r--r-- | src/mbgl/renderer/render_layer.hpp | 13 |
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; |