Как нарисовать повторяющуюся текстуру по контуру линии/полигона?
Вот что я имею в виду. Причем патерн не должен начинаться заново с каждой вершины, он должен продолжаться. Приметно также, как работает пунктирная линия.

Насколько я понял, привязать текстуру произвольной высоты непосредственно к линии невозможно. Для этого следует триангулировать каждый сегмент линии в прямоугольник и уже на него накладывать текстуру.
Так я и сделал. Ширина при этом задается.
Рисуя полученный массив точек через GL_TRIANGLE_STRIP - получаю линию произвольной ширины.
Осталось только наложить текстуру правильным образом.
Но с текстурными координатами я совсем запутался. Не могу понять как вершины соотносятся в текстурными координатами, в каком порядке происходит отрисовка (в порядке указания точек, или нет?).
Пытался затекстурировать хотя бы один сегмент (4 точки) случайной картинкой c несколькими повторениями, но запутался еще сильнее.

QVector <float> vertex = {100, 150, 100, 50, 469.098, 150, 530.902,50};
QVector<float> tex_coord = { 0,0,4,0,0,1,1,1};
Не понимаю почему она повторяется сразу по двум осям, хотя я указал 4 только по x. Почему во втором треугольнике она повернута, и почему четвертая текстурная координата вообще ни на что не влияет, ее можно просто удалить. Текстурные координаты передаются след. образом. Вершинный шейдер:
attribute vec2 a_coord;
varying lowp vec2 v_coord;
...
void main() {
...
v_coord = a_coord;
}
Фрагментный:
uniform sampler2D u_tex;
varying lowp vec2 v_coord;
void main() {
gl_FragColor = texture2D(u_tex, v_coord);
}
Передача в шейдер:
glGenBuffers(1, &tex_coord_buff);
glBindBuffer(GL_ARRAY_BUFFER, tex_coord_buff);
glBufferData(GL_ARRAY_BUFFER, tex_coord.size() * sizeof(float), tex_coord.data(), GL_STATIC_DRAW);
glEnableVertexAttribArray(1);
glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, sizeof(float), (void*)0);
