mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 11:28:05 +02:00
draw: implement triangle strips with adjacency in geometry shader
This commit is contained in:
parent
f542a2770a
commit
4320a451a3
1 changed files with 12 additions and 1 deletions
|
|
@ -9,7 +9,7 @@ static void FUNC( struct draw_geometry_shader *shader,
|
||||||
|
|
||||||
boolean flatfirst = (draw->rasterizer->flatshade &&
|
boolean flatfirst = (draw->rasterizer->flatshade &&
|
||||||
draw->rasterizer->flatshade_first);
|
draw->rasterizer->flatshade_first);
|
||||||
unsigned i;
|
unsigned i, j;
|
||||||
unsigned count = input_prims->count;
|
unsigned count = input_prims->count;
|
||||||
LOCAL_VARS
|
LOCAL_VARS
|
||||||
|
|
||||||
|
|
@ -124,6 +124,17 @@ static void FUNC( struct draw_geometry_shader *shader,
|
||||||
i + 3, i + 4, i + 5);
|
i + 3, i + 4, i + 5);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case PIPE_PRIM_TRIANGLE_STRIP_ADJACENCY:
|
||||||
|
for (i = 0, j = 0; i+5 < count; i += 2, ++j) {
|
||||||
|
TRI_ADJ( shader,
|
||||||
|
i + 0,
|
||||||
|
i + 1 + 2*(j&1),
|
||||||
|
i + 2 + 2*(j&1),
|
||||||
|
i + 3 - 2*(j&1),
|
||||||
|
i + 4 - 2*(j&1),
|
||||||
|
i + 5);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
debug_assert(!"Unsupported primitive in geometry shader");
|
debug_assert(!"Unsupported primitive in geometry shader");
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue