diff options
author | Bruno de Oliveira Abinader <brunoabinader@gmail.com> | 2015-06-17 10:56:18 +0300 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2015-08-20 11:59:07 -0700 |
commit | 98534631e068477930a32ca25459dca4f3bb6170 (patch) | |
tree | 4276174b11295db6c491f2cdf9676691ff22eae0 /src/mbgl/renderer/circle_bucket.hpp | |
parent | d1100f34de826bd8eab8a2592635af3341c92e6a (diff) | |
download | qtlocation-mapboxgl-98534631e068477930a32ca25459dca4f3bb6170.tar.gz |
Add circle render type
As specified in:
https://github.com/mapbox/mapbox-gl-style-spec/blob/v8-circle/reference/v8.json
Part of #1740.
Diffstat (limited to 'src/mbgl/renderer/circle_bucket.hpp')
-rw-r--r-- | src/mbgl/renderer/circle_bucket.hpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/mbgl/renderer/circle_bucket.hpp b/src/mbgl/renderer/circle_bucket.hpp new file mode 100644 index 0000000000..727b9fa376 --- /dev/null +++ b/src/mbgl/renderer/circle_bucket.hpp @@ -0,0 +1,46 @@ +#ifndef MBGL_RENDERER_CIRCLE_BUCKET +#define MBGL_RENDERER_CIRCLE_BUCKET + +#include <mbgl/renderer/bucket.hpp> + +#include <mbgl/map/geometry_tile.hpp> + +#include <mbgl/geometry/elements_buffer.hpp> +#include <mbgl/geometry/circle_buffer.hpp> + +#include <mbgl/style/style_bucket.hpp> +#include <mbgl/style/style_layout.hpp> + +namespace mbgl { + +class CircleVertexBuffer; +class CircleShader; + +class CircleBucket : public Bucket { + using TriangleGroup = ElementGroup<3>; + +public: + CircleBucket(CircleVertexBuffer &vertexBuffer, TriangleElementsBuffer &elementsBuffer); + ~CircleBucket() override; + + void upload() override; + void render(Painter&, const StyleLayer&, const TileID&, const mat4&) override; + + bool hasData() const; + void addGeometry(const GeometryCollection&); + + void drawCircles(CircleShader& shader); + +private: + CircleVertexBuffer& vertexBuffer_; + TriangleElementsBuffer& elementsBuffer_; + + const size_t vertexStart_; + const size_t elementsStart_; + + std::vector<std::unique_ptr<TriangleGroup>> triangleGroups_; +}; + +} // namespace mbgl + +#endif // MBGL_RENDERER_CIRCLE_BUCKET |