summaryrefslogtreecommitdiff
path: root/src/renderer/line_bucket.cpp
diff options
context:
space:
mode:
authorLauren Budorick <lauren@mapbox.com>2014-07-25 18:17:37 -0700
committerJohn Firebaugh <john.firebaugh@gmail.com>2014-09-03 18:12:40 -0700
commit71c31cee2499d44fcd590136d15c5da7fbfb65ec (patch)
treebdbaf4289a156af7be552a3758e257ef25e2caf4 /src/renderer/line_bucket.cpp
parentc1280f0b380bfb21ce9e811b87bcf7d8ab380f25 (diff)
downloadqtlocation-mapboxgl-71c31cee2499d44fcd590136d15c5da7fbfb65ec.tar.gz
linepattern in progress
Diffstat (limited to 'src/renderer/line_bucket.cpp')
-rw-r--r--src/renderer/line_bucket.cpp14
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);