diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2016-10-03 11:48:50 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2016-10-05 10:52:19 -0700 |
commit | 9cf57e7142f0e7b599de0f851cd6178d5a6a4c25 (patch) | |
tree | 185fbfaf15cc55a996731060b92bb24c87ad4378 /src/mbgl/renderer/circle_bucket.hpp | |
parent | e4310aa87489c2db52d7ff65f71e51cc6c9700b6 (diff) | |
download | qtlocation-mapboxgl-9cf57e7142f0e7b599de0f851cd6178d5a6a4c25.tar.gz |
[core] Make ElementGroup safer
Template on shader types, rather than count. This allows the compiler to enforce using the correct VAO for the shader and PaintMode. This fixes OverdrawMode with circle layers.
While here, avoid using unique_ptrs for groups. Instead, ensure ElementGroup is movable.
Diffstat (limited to 'src/mbgl/renderer/circle_bucket.hpp')
-rw-r--r-- | src/mbgl/renderer/circle_bucket.hpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/mbgl/renderer/circle_bucket.hpp b/src/mbgl/renderer/circle_bucket.hpp index 5f4f357d2f..2f3faccdec 100644 --- a/src/mbgl/renderer/circle_bucket.hpp +++ b/src/mbgl/renderer/circle_bucket.hpp @@ -1,11 +1,11 @@ #pragma once #include <mbgl/renderer/bucket.hpp> +#include <mbgl/renderer/element_group.hpp> #include <mbgl/map/mode.hpp> #include <mbgl/tile/geometry_tile_data.hpp> #include <mbgl/gl/vertex_buffer.hpp> #include <mbgl/gl/index_buffer.hpp> -#include <mbgl/gl/element_group.hpp> #include <mbgl/shader/circle_vertex.hpp> namespace mbgl { @@ -24,14 +24,13 @@ public: bool needsClipping() const override; void addGeometry(const GeometryCollection&); - void drawCircles(CircleShader&, gl::Context&); + void drawCircles(CircleShader&, gl::Context&, PaintMode); private: std::vector<CircleVertex> vertices; std::vector<gl::Triangle> triangles; - using TriangleGroup = gl::ElementGroup<3>; - std::vector<std::unique_ptr<TriangleGroup>> triangleGroups; + std::vector<ElementGroup<CircleShader>> groups; optional<gl::VertexBuffer<CircleVertex>> vertexBuffer; optional<gl::IndexBuffer<gl::Triangle>> indexBuffer; |