- tmp = EMIT_VERTS(ctx, start + j, 2, tmp);
- tmp = EMIT_VERTS(ctx, start + j + 3, 1, tmp);
- /* Send v1, v2, v3
- */
- tmp = EMIT_VERTS(ctx, start + j + 1, 3, tmp);
- (void) tmp;
+ INIT(GL_TRIANGLES);
+
+ for (j = 0; j + 3 < count; j += 4) {
+ void *tmp = ALLOC_VERTS(6);
+ /* Send v0, v1, v3
+ */
+ tmp = EMIT_VERTS(ctx, start + j, 2, tmp);
+ tmp = EMIT_VERTS(ctx, start + j + 3, 1, tmp);
+ /* Send v1, v2, v3
+ */
+ tmp = EMIT_VERTS(ctx, start + j + 1, 3, tmp);
+ (void) tmp;
+ }
+ } else {
+ unreachable("Cannot draw primitive");