summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/debug_bucket.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/renderer/debug_bucket.cpp')
-rw-r--r--src/mbgl/renderer/debug_bucket.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/mbgl/renderer/debug_bucket.cpp b/src/mbgl/renderer/debug_bucket.cpp
new file mode 100644
index 0000000000..f089374564
--- /dev/null
+++ b/src/mbgl/renderer/debug_bucket.cpp
@@ -0,0 +1,32 @@
+#include <mbgl/renderer/debug_bucket.hpp>
+#include <mbgl/renderer/painter.hpp>
+
+#include <mbgl/platform/gl.hpp>
+
+#include <cassert>
+
+struct geometry_too_long_exception : std::exception {};
+
+using namespace mbgl;
+
+DebugBucket::DebugBucket(DebugFontBuffer& fontBuffer_)
+ : fontBuffer(fontBuffer_) {
+}
+
+void DebugBucket::render(Painter& painter, util::ptr<StyleLayer> /*layer_desc*/, const Tile::ID& /*id*/, const mat4 &matrix) {
+ painter.renderDebugText(*this, matrix);
+}
+
+bool DebugBucket::hasData() const {
+ return fontBuffer.index() > 0;
+}
+
+void DebugBucket::drawLines(PlainShader& shader) {
+ array.bind(shader, fontBuffer, BUFFER_OFFSET(0));
+ glDrawArrays(GL_LINES, 0, (GLsizei)(fontBuffer.index()));
+}
+
+void DebugBucket::drawPoints(PlainShader& shader) {
+ array.bind(shader, fontBuffer, BUFFER_OFFSET(0));
+ glDrawArrays(GL_POINTS, 0, (GLsizei)(fontBuffer.index()));
+}