diff options
author | Chia-I Wu <[email protected]> | 2010-08-07 03:36:18 +0800 |
---|---|---|
committer | Chia-I Wu <[email protected]> | 2010-08-16 20:46:28 +0800 |
commit | 04bc530dbdbe5d004219c9100e35f5d56cfedd80 (patch) | |
tree | e64232d9f3d1f9f36aeeca085fe30fba168d613b /src/gallium/auxiliary/draw/draw_pt.h | |
parent | 56213a64fe9e4270fd7886675b1e8224b2d88794 (diff) |
draw: Add vsplit frontend.
vsplit is based on varray. It sets the split flags when a primitive is
splitted. It also has support for indexed primitives.
For indexed primitives, unlike vcache, vsplit splits the primitives
instead of decomposes them.
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_pt.h')
-rw-r--r-- | src/gallium/auxiliary/draw/draw_pt.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/draw/draw_pt.h b/src/gallium/auxiliary/draw/draw_pt.h index 688b15c4fac..de3f638db51 100644 --- a/src/gallium/auxiliary/draw/draw_pt.h +++ b/src/gallium/auxiliary/draw/draw_pt.h @@ -52,8 +52,19 @@ struct draw_vertex_info; /* The "front end" - prepare sets of fetch, draw elements for the * middle end. * - * Currenly one version of this: + * The fetch elements are indices to the vertices. The draw elements are + * indices to the fetched vertices. When both arrays of elements are both + * linear, middle->run_linear is called; When only the fetch elements are + * linear, middle->run_linear_elts is called; Otherwise, middle->run is + * called. + * + * When the number of the draw elements exceeds max_vertex of the middle end, + * the draw elements (as well as the fetch elements) are splitted and the + * middle end is called multiple times. + * + * Currenly there are: * - vcache - catchall implementation, decomposes to TRI/LINE/POINT prims + * - vsplit - catchall implementation, splits big prims * Later: * - varray, varray_split * - velement, velement_split @@ -138,6 +149,7 @@ const void *draw_pt_elt_ptr( struct draw_context *draw, */ struct draw_pt_front_end *draw_pt_vcache( struct draw_context *draw ); struct draw_pt_front_end *draw_pt_varray(struct draw_context *draw); +struct draw_pt_front_end *draw_pt_vsplit(struct draw_context *draw); /* Middle-ends: |