summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2014-01-16 10:54:16 +0100
committerKonstantin Käfer <mail@kkaefer.com>2014-01-16 10:54:16 +0100
commit2d008787fc113bf352674b7a1c7e57f47f8a635f (patch)
tree97c884f8213cd4ab7449b38f14550c44202952cc /src
parenta3a5a96bfed27b02f3a9f7cc2863db988b4e41a2 (diff)
downloadqtlocation-mapboxgl-2d008787fc113bf352674b7a1c7e57f47f8a635f.tar.gz
add tile border (debug)
Diffstat (limited to 'src')
-rw-r--r--src/renderer/painter.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/renderer/painter.cpp b/src/renderer/painter.cpp
index 00acb1fb40..8c677e1cf9 100644
--- a/src/renderer/painter.cpp
+++ b/src/renderer/painter.cpp
@@ -18,6 +18,14 @@ GLshort tile_stencil_vertices[] = {
4096, 4096
};
+GLshort tile_border_vertices[] = {
+ 0, 0,
+ 4095, 0,
+ 4095, 4095,
+ 0, 4095,
+ 0, 0
+};
+
painter::painter(class transform *transform)
: transform(transform),
currentShader(NULL),
@@ -37,6 +45,12 @@ void painter::setup() {
glBindBuffer(GL_ARRAY_BUFFER, tile_stencil_buffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(tile_stencil_vertices), tile_stencil_vertices, GL_STATIC_DRAW);
+ // Set up the tile boundary lines we're using to draw the tile outlines.
+ glGenBuffers(1, &tile_border_buffer);
+ glBindBuffer(GL_ARRAY_BUFFER, tile_border_buffer);
+ glBufferData(GL_ARRAY_BUFFER, sizeof(tile_border_vertices), tile_border_vertices, GL_STATIC_DRAW);
+
+
glEnable(GL_STENCIL_TEST);
@@ -140,6 +154,19 @@ void painter::render(tile::ptr tile) {
glUniform4f(lineShader->u_color, 0.0f, 0.0f, 0.0f, 1.0f);
glLineWidth(1.0f);
glDrawArrays(GL_LINE_STRIP, 0, tile->lineVertex.length());
+
+
+
+
+
+ // draw tile outline
+ switchShader(lineShader);
+ glUniformMatrix4fv(lineShader->u_matrix, 1, GL_FALSE, matrix);
+ glBindBuffer(GL_ARRAY_BUFFER, tile_border_buffer);
+ glVertexAttribPointer(lineShader->a_pos, 2, GL_SHORT, false, 0, BUFFER_OFFSET(0));
+ glUniform4f(lineShader->u_color, 1.0f, 1.0f, 1.0f, 1.0f);
+ glLineWidth(4.0f);
+ glDrawArrays(GL_LINE_STRIP, 0, sizeof(tile_border_vertices));
}
void painter::viewport() {