summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h')
-rw-r--r--src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h42
1 files changed, 21 insertions, 21 deletions
diff --git a/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h b/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
index 2e94705..2d8957e 100644
--- a/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
+++ b/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
@@ -45,16 +45,16 @@ CONCAT(vsplit_primitive_, ELT_TYPE)(struct vsplit_frontend *vsplit,
unsigned fetch_start, fetch_count;
const ushort *draw_elts = NULL;
unsigned i;
-
- ib += istart;
+ const unsigned start = istart;
+ const unsigned end = istart + icount;
/* use the ib directly */
if (min_index == 0 && sizeof(ib[0]) == sizeof(draw_elts[0])) {
if (icount > vsplit->max_vertices)
return FALSE;
- for (i = 0; i < icount; i++) {
- ELT_TYPE idx = ib[i];
+ for (i = start; i < end; i++) {
+ ELT_TYPE idx = DRAW_GET_IDX(ib, i);
if (idx < min_index || idx > max_index) {
debug_printf("warning: index out of range\n");
}
@@ -85,23 +85,23 @@ CONCAT(vsplit_primitive_, ELT_TYPE)(struct vsplit_frontend *vsplit,
if (!draw_elts) {
if (min_index == 0) {
- for (i = 0; i < icount; i++) {
- ELT_TYPE idx = ib[i];
+ for (i = start; i < end; i++) {
+ ELT_TYPE idx = DRAW_GET_IDX(ib, i);
if (idx < min_index || idx > max_index) {
debug_printf("warning: index out of range\n");
}
- vsplit->draw_elts[i] = (ushort) idx;
+ vsplit->draw_elts[i - start] = (ushort) idx;
}
}
else {
- for (i = 0; i < icount; i++) {
- ELT_TYPE idx = ib[i];
+ for (i = start; i < end; i++) {
+ ELT_TYPE idx = DRAW_GET_IDX(ib, i);
if (idx < min_index || idx > max_index) {
debug_printf("warning: index out of range\n");
}
- vsplit->draw_elts[i] = (ushort) (idx - min_index);
+ vsplit->draw_elts[i - start] = (ushort) (idx - min_index);
}
}
@@ -138,41 +138,41 @@ CONCAT(vsplit_segment_cache_, ELT_TYPE)(struct vsplit_frontend *vsplit,
spoken = !!spoken;
if (ibias == 0) {
if (spoken)
- ADD_CACHE(vsplit, ib[ispoken]);
+ ADD_CACHE(vsplit, DRAW_GET_IDX(ib, ispoken));
for (i = spoken; i < icount; i++)
- ADD_CACHE(vsplit, ib[istart + i]);
+ ADD_CACHE(vsplit, DRAW_GET_IDX(ib, istart + i));
if (close)
- ADD_CACHE(vsplit, ib[iclose]);
+ ADD_CACHE(vsplit, DRAW_GET_IDX(ib, iclose));
}
else if (ibias > 0) {
if (spoken)
- ADD_CACHE(vsplit, (uint) ib[ispoken] + ibias);
+ ADD_CACHE(vsplit, (uint) DRAW_GET_IDX(ib, ispoken) + ibias);
for (i = spoken; i < icount; i++)
- ADD_CACHE(vsplit, (uint) ib[istart + i] + ibias);
+ ADD_CACHE(vsplit, (uint) DRAW_GET_IDX(ib, istart + i) + ibias);
if (close)
- ADD_CACHE(vsplit, (uint) ib[iclose] + ibias);
+ ADD_CACHE(vsplit, (uint) DRAW_GET_IDX(ib, iclose) + ibias);
}
else {
if (spoken) {
if ((int) ib[ispoken] < -ibias)
return;
- ADD_CACHE(vsplit, ib[ispoken] + ibias);
+ ADD_CACHE(vsplit, DRAW_GET_IDX(ib, ispoken) + ibias);
}
for (i = spoken; i < icount; i++) {
- if ((int) ib[istart + i] < -ibias)
+ if ((int) DRAW_GET_IDX(ib, istart + i) < -ibias)
return;
- ADD_CACHE(vsplit, ib[istart + i] + ibias);
+ ADD_CACHE(vsplit, DRAW_GET_IDX(ib, istart + i) + ibias);
}
if (close) {
- if ((int) ib[iclose] < -ibias)
+ if ((int) DRAW_GET_IDX(ib, iclose) < -ibias)
return;
- ADD_CACHE(vsplit, ib[iclose] + ibias);
+ ADD_CACHE(vsplit, DRAW_GET_IDX(ib, iclose) + ibias);
}
}