| struct S { |
| float4 pos : SV_Position; |
| float2 clip0 : SV_ClipDistance0; // clip0 and clip1 form an array of float[4] externally. |
| float2 clip1 : SV_ClipDistance1; |
| }; |
| |
| [maxvertexcount(3)] |
| void main(triangle in float4 pos[3] : SV_Position, |
| triangle in uint VertexID[3] : VertexID, |
| inout LineStream<S> OutputStream, |
| triangle in float2 clip0[3] : SV_ClipDistance0, // test input arrayed semantic vars |
| triangle in float2 clip1[3] : SV_ClipDistance1) |
| { |
| S s; |
| |
| s.pos = pos[0]; |
| s.clip0 = clip0[0]; |
| s.clip1 = clip1[0]; |
| |
| OutputStream.Append(s); |
| } |