mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 18:31:55 -04:00
use per-prim minmax
This commit is contained in:
parent
6a4b827ea7
commit
c92e7e92d4
@ -2699,23 +2699,23 @@ draw_tristrips(const qpGeomTristrips *primitive) {
|
|||||||
int max_vertex = primitive->get_max_vertex();
|
int max_vertex = primitive->get_max_vertex();
|
||||||
CPTA_ushort vertices = primitive->get_flat_first_vertices();
|
CPTA_ushort vertices = primitive->get_flat_first_vertices();
|
||||||
CPTA_int ends = primitive->get_ends();
|
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);
|
CPTA_uchar array_data = _vertex_data->get_array_data(0);
|
||||||
int stride = _vertex_data->get_format()->get_array(0)->get_stride();
|
int stride = _vertex_data->get_format()->get_array(0)->get_stride();
|
||||||
|
|
||||||
int num_primitives = primitive->get_num_primitives();
|
unsigned int start = 0;
|
||||||
int start = 0;
|
for (size_t i = 0; i < ends.size(); i++) {
|
||||||
for (CPTA_int::const_iterator pi = ends.begin(); pi != ends.end(); ++pi) {
|
|
||||||
int end = (*pi);
|
|
||||||
|
|
||||||
_pD3DDevice->DrawIndexedPrimitiveUP
|
_pD3DDevice->DrawIndexedPrimitiveUP
|
||||||
(D3DPT_TRIANGLESTRIP,
|
(D3DPT_TRIANGLESTRIP,
|
||||||
min_vertex, max_vertex - min_vertex + 1,
|
mins[i], maxs[i] - mins[i] + 1,
|
||||||
end - start - 2,
|
ends[i] - start - 2,
|
||||||
vertices + start, D3DFMT_INDEX16,
|
vertices + start, D3DFMT_INDEX16,
|
||||||
array_data, stride);
|
array_data, stride);
|
||||||
|
|
||||||
start = end;
|
start = ends[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user