diff options
author | Lauren Budorick <lauren@mapbox.com> | 2014-07-25 18:17:37 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2014-09-03 18:12:40 -0700 |
commit | 71c31cee2499d44fcd590136d15c5da7fbfb65ec (patch) | |
tree | bdbaf4289a156af7be552a3758e257ef25e2caf4 /src/renderer/line_bucket.cpp | |
parent | c1280f0b380bfb21ce9e811b87bcf7d8ab380f25 (diff) | |
download | qtlocation-mapboxgl-71c31cee2499d44fcd590136d15c5da7fbfb65ec.tar.gz |
linepattern in progress
Diffstat (limited to 'src/renderer/line_bucket.cpp')
-rw-r--r-- | src/renderer/line_bucket.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/renderer/line_bucket.cpp b/src/renderer/line_bucket.cpp index e089d7f61b..2e89a7c35d 100644 --- a/src/renderer/line_bucket.cpp +++ b/src/renderer/line_bucket.cpp @@ -374,6 +374,20 @@ void LineBucket::drawLines(LineShader& shader) { } } +void LineBucket::drawLinePatterns(LinepatternShader& shader) { + char *vertex_index = BUFFER_OFFSET(vertex_start * vertexBuffer.itemSize); + char *elements_index = BUFFER_OFFSET(triangle_elements_start * triangleElementsBuffer.itemSize); + for (triangle_group_type& group : triangleGroups) { + if (!group.elements_length) { + continue; + } + group.array[1].bind(shader, vertexBuffer, triangleElementsBuffer, vertex_index); + glDrawElements(GL_TRIANGLES, group.elements_length * 3, GL_UNSIGNED_SHORT, elements_index); + vertex_index += group.vertex_length * vertexBuffer.itemSize; + elements_index += group.elements_length * triangleElementsBuffer.itemSize; + } +} + void LineBucket::drawPoints(LinejoinShader& shader) { char *vertex_index = BUFFER_OFFSET(vertex_start * vertexBuffer.itemSize); char *elements_index = BUFFER_OFFSET(point_elements_start * pointElementsBuffer.itemSize); |