From: Zack Rusin Date: Wed, 23 Dec 2009 17:39:21 +0000 (-0500) Subject: gallium: add an inline that returns number of vertices per primitive X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f658fa5e8febc41836980ad1b4cb385445833a02;p=mesa.git gallium: add an inline that returns number of vertices per primitive --- diff --git a/src/gallium/include/pipe/p_inlines.h b/src/gallium/include/pipe/p_inlines.h index 5fbd62a03d2..95ec55d145e 100644 --- a/src/gallium/include/pipe/p_inlines.h +++ b/src/gallium/include/pipe/p_inlines.h @@ -192,6 +192,38 @@ pipe_transfer_buffer_flags( struct pipe_transfer *transf ) } } +static INLINE unsigned +pipe_vertices_per_primitive(int primitive) +{ + switch(primitive) { + case PIPE_PRIM_POINTS: + return 1; + case PIPE_PRIM_LINES: + case PIPE_PRIM_LINE_LOOP: + case PIPE_PRIM_LINE_STRIP: + return 2; + case PIPE_PRIM_TRIANGLES: + case PIPE_PRIM_TRIANGLE_STRIP: + case PIPE_PRIM_TRIANGLE_FAN: + return 3; + case PIPE_PRIM_LINES_ADJACENCY: + case PIPE_PRIM_LINE_STRIP_ADJACENCY: + return 4; + case PIPE_PRIM_TRIANGLES_ADJACENCY: + case PIPE_PRIM_TRIANGLE_STRIP_ADJACENCY: + return 6; + + /* following primitives should never be used + * with geometry shaders */ + case PIPE_PRIM_POLYGON: + case PIPE_PRIM_QUADS: + case PIPE_PRIM_QUAD_STRIP: + default: + debug_printf("Unrecognized geometry shader primitive"); + return 3; + } +} + #ifdef __cplusplus } #endif