From 98534631e068477930a32ca25459dca4f3bb6170 Mon Sep 17 00:00:00 2001 From: Bruno de Oliveira Abinader Date: Wed, 17 Jun 2015 10:56:18 +0300 Subject: Add circle render type As specified in: https://github.com/mapbox/mapbox-gl-style-spec/blob/v8-circle/reference/v8.json Part of #1740. --- src/mbgl/renderer/circle_bucket.hpp | 46 +++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/mbgl/renderer/circle_bucket.hpp (limited to 'src/mbgl/renderer/circle_bucket.hpp') 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 + +#include + +#include +#include + +#include +#include + +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> triangleGroups_; +}; + +} // namespace mbgl + +#endif // MBGL_RENDERER_CIRCLE_BUCKET -- cgit v1.2.1