use per-prim minmax

This commit is contained in:
David Rose 2005-03-18 01:37:29 +00:00
parent 6a4b827ea7
commit c92e7e92d4

View File

@ -2699,23 +2699,23 @@ draw_tristrips(const qpGeomTristrips *primitive) {
int max_vertex = primitive->get_max_vertex();
CPTA_ushort vertices = primitive->get_flat_first_vertices();
CPTA_int ends = primitive->get_ends();
CPTA_ushort mins = primitive->get_mins();
CPTA_ushort maxs = primitive->get_maxs();
nassertv(mins.size() == ends.size() && maxs.size() == ends.size());
CPTA_uchar array_data = _vertex_data->get_array_data(0);
int stride = _vertex_data->get_format()->get_array(0)->get_stride();
int num_primitives = primitive->get_num_primitives();
int start = 0;
for (CPTA_int::const_iterator pi = ends.begin(); pi != ends.end(); ++pi) {
int end = (*pi);
unsigned int start = 0;
for (size_t i = 0; i < ends.size(); i++) {
_pD3DDevice->DrawIndexedPrimitiveUP
(D3DPT_TRIANGLESTRIP,
min_vertex, max_vertex - min_vertex + 1,
end - start - 2,
mins[i], maxs[i] - mins[i] + 1,
ends[i] - start - 2,
vertices + start, D3DFMT_INDEX16,
array_data, stride);
start = end;
start = ends[i];
}
}