From c92e7e92d4ca31974b2323bf3bbb6d2c4ff8c6ea Mon Sep 17 00:00:00 2001 From: David Rose Date: Fri, 18 Mar 2005 01:37:29 +0000 Subject: [PATCH] use per-prim minmax --- panda/src/dxgsg8/dxGraphicsStateGuardian8.cxx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/panda/src/dxgsg8/dxGraphicsStateGuardian8.cxx b/panda/src/dxgsg8/dxGraphicsStateGuardian8.cxx index 9510ad1b02..39a3b9f2e3 100644 --- a/panda/src/dxgsg8/dxGraphicsStateGuardian8.cxx +++ b/panda/src/dxgsg8/dxGraphicsStateGuardian8.cxx @@ -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]; } }