diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2016-09-26 12:53:32 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2016-10-05 10:52:19 -0700 |
commit | 7a3bef091e7390fa57bf33f1a704c893768b5625 (patch) | |
tree | af798d879923fd45e763f5dc5449b7e8419aa192 /src/mbgl/renderer/symbol_bucket.hpp | |
parent | ac8a74ebccb85f83c40b9fccfeb11dc2cb3c79e4 (diff) | |
download | qtlocation-mapboxgl-7a3bef091e7390fa57bf33f1a704c893768b5625.tar.gz |
[core] Refactor Buffer
Diffstat (limited to 'src/mbgl/renderer/symbol_bucket.hpp')
-rw-r--r-- | src/mbgl/renderer/symbol_bucket.hpp | 35 |
1 files changed, 23 insertions, 12 deletions
diff --git a/src/mbgl/renderer/symbol_bucket.hpp b/src/mbgl/renderer/symbol_bucket.hpp index 87c8250d55..36511e964f 100644 --- a/src/mbgl/renderer/symbol_bucket.hpp +++ b/src/mbgl/renderer/symbol_bucket.hpp @@ -2,10 +2,11 @@ #include <mbgl/renderer/bucket.hpp> #include <mbgl/map/mode.hpp> -#include <mbgl/geometry/elements_buffer.hpp> -#include <mbgl/geometry/text_buffer.hpp> -#include <mbgl/geometry/icon_buffer.hpp> -#include <mbgl/geometry/collision_box_buffer.hpp> +#include <mbgl/gl/element_group.hpp> +#include <mbgl/gl/vertex_buffer.hpp> +#include <mbgl/gl/index_buffer.hpp> +#include <mbgl/shader/texture_rect_vertex.hpp> +#include <mbgl/shader/collision_box_vertex.hpp> #include <mbgl/text/glyph_range.hpp> #include <mbgl/style/layers/symbol_layer_properties.hpp> @@ -46,25 +47,35 @@ public: private: friend class SymbolLayout; - typedef ElementGroup<2> TextElementGroup; - typedef ElementGroup<4> IconElementGroup; - typedef ElementGroup<1> CollisionBoxElementGroup; + typedef gl::ElementGroup<2> TextElementGroup; + typedef gl::ElementGroup<4> IconElementGroup; + typedef gl::ElementGroup<1> CollisionBoxElementGroup; struct TextBuffer { - TextVertexBuffer vertices; - TriangleElementsBuffer triangles; + std::vector<TextureRectVertex> vertices; + std::vector<gl::Triangle> triangles; std::vector<std::unique_ptr<TextElementGroup>> groups; + + optional<gl::VertexBuffer<TextureRectVertex>> vertexBuffer; + optional<gl::IndexBuffer<gl::Triangle>> indexBuffer; } text; struct IconBuffer { - IconVertexBuffer vertices; - TriangleElementsBuffer triangles; + std::vector<TextureRectVertex> vertices; + std::vector<gl::Triangle> triangles; std::vector<std::unique_ptr<IconElementGroup>> groups; + + optional<gl::VertexBuffer<TextureRectVertex>> vertexBuffer; + optional<gl::IndexBuffer<gl::Triangle>> indexBuffer; } icon; struct CollisionBoxBuffer { - CollisionBoxVertexBuffer vertices; + std::vector<CollisionBoxVertex> vertices; + std::vector<gl::Line> lines; std::vector<std::unique_ptr<CollisionBoxElementGroup>> groups; + + optional<gl::VertexBuffer<CollisionBoxVertex>> vertexBuffer; + optional<gl::IndexBuffer<gl::Line>> indexBuffer; } collisionBox; }; |