diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2014-01-16 10:54:16 +0100 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2014-01-16 10:54:16 +0100 |
commit | 2d008787fc113bf352674b7a1c7e57f47f8a635f (patch) | |
tree | 97c884f8213cd4ab7449b38f14550c44202952cc /src | |
parent | a3a5a96bfed27b02f3a9f7cc2863db988b4e41a2 (diff) | |
download | qtlocation-mapboxgl-2d008787fc113bf352674b7a1c7e57f47f8a635f.tar.gz |
add tile border (debug)
Diffstat (limited to 'src')
-rw-r--r-- | src/renderer/painter.cpp | 27 |
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() { |