diff options
Diffstat (limited to 'src/mbgl/renderer/symbol_bucket.hpp')
-rw-r--r-- | src/mbgl/renderer/symbol_bucket.hpp | 24 |
1 files changed, 3 insertions, 21 deletions
diff --git a/src/mbgl/renderer/symbol_bucket.hpp b/src/mbgl/renderer/symbol_bucket.hpp index e5180c31e2..a905e25363 100644 --- a/src/mbgl/renderer/symbol_bucket.hpp +++ b/src/mbgl/renderer/symbol_bucket.hpp @@ -1,24 +1,19 @@ #pragma once #include <mbgl/renderer/bucket.hpp> -#include <mbgl/renderer/element_group.hpp> #include <mbgl/map/mode.hpp> #include <mbgl/gl/vertex_buffer.hpp> #include <mbgl/gl/index_buffer.hpp> +#include <mbgl/gl/segment.hpp> #include <mbgl/shader/symbol_vertex.hpp> #include <mbgl/shader/collision_box_vertex.hpp> #include <mbgl/text/glyph_range.hpp> #include <mbgl/style/layers/symbol_layer_properties.hpp> -#include <memory> #include <vector> namespace mbgl { -class SymbolSDFShader; -class SymbolIconShader; -class CollisionBoxShader; - class SymbolBucket : public Bucket { public: SymbolBucket(const MapMode, @@ -32,25 +27,16 @@ public: bool hasTextData() const; bool hasIconData() const; bool hasCollisionBoxData() const; - bool needsClipping() const override; - - void drawGlyphs(SymbolSDFShader&, gl::Context&, PaintMode); - void drawIcons(SymbolSDFShader&, gl::Context&, PaintMode); - void drawIcons(SymbolIconShader&, gl::Context&, PaintMode); - void drawCollisionBoxes(CollisionBoxShader&, gl::Context&); const MapMode mode; const style::SymbolLayoutProperties layout; const bool sdfIcons; const bool iconsNeedLinear; -private: - friend class SymbolLayout; - struct TextBuffer { std::vector<SymbolVertex> vertices; std::vector<gl::Triangle> triangles; - std::vector<ElementGroup<SymbolSDFShader>> groups; + std::vector<gl::Segment> segments; optional<gl::VertexBuffer<SymbolVertex>> vertexBuffer; optional<gl::IndexBuffer<gl::Triangle>> indexBuffer; @@ -59,7 +45,7 @@ private: struct IconBuffer { std::vector<SymbolVertex> vertices; std::vector<gl::Triangle> triangles; - std::vector<ElementGroup<SymbolSDFShader, SymbolIconShader>> groups; + std::vector<gl::Segment> segments; optional<gl::VertexBuffer<SymbolVertex>> vertexBuffer; optional<gl::IndexBuffer<gl::Triangle>> indexBuffer; @@ -67,11 +53,7 @@ private: struct CollisionBoxBuffer { std::vector<CollisionBoxVertex> vertices; - std::vector<gl::Line> lines; - std::vector<ElementGroup<CollisionBoxShader>> groups; - optional<gl::VertexBuffer<CollisionBoxVertex>> vertexBuffer; - optional<gl::IndexBuffer<gl::Line>> indexBuffer; } collisionBox; }; |