/* If the index buffer overflows we'll need to run
* through the normal paths */
- if (start >= draw->pt.user.eltMax ||
- end > draw->pt.user.eltMax ||
- end < istart || end < icount)
+ if (end >= draw->pt.user.eltMax ||
+ end < istart)
return FALSE;
/* use the ib directly */
if (close)
ADD_CACHE(vsplit, ib, 0, iclose, 0);
}
- else if (ibias > 0) {
+ else {
if (spoken)
ADD_CACHE(vsplit, ib, 0, ispoken, ibias);
if (close)
ADD_CACHE(vsplit, ib, 0, iclose, ibias);
}
- else {
- if (spoken) {
- ADD_CACHE(vsplit, ib, 0, ispoken, ibias);
- }
-
- for (i = spoken; i < icount; i++) {
- ADD_CACHE(vsplit, ib, istart, i, ibias);
- }
-
- if (close) {
- ADD_CACHE(vsplit, ib, 0, iclose, ibias);
- }
- }
vsplit_flush_cache(vsplit, flags);
}
assert(icount + !!close_loop <= vsplit->segment_size);
+ /* need to draw the sections of the line loop as line strips */
+ flags |= DRAW_LINE_LOOP_AS_STRIP;
+
if (close_loop) {
for (nr = 0; nr < icount; nr++)
vsplit->fetch_elts[nr] = istart + nr;