1617a3babSopenharmony_cistruct S {
2617a3babSopenharmony_ci    float4 pos     : SV_Position;
3617a3babSopenharmony_ci    float2 clip    : SV_ClipDistance0;
4617a3babSopenharmony_ci};
5617a3babSopenharmony_ci
6617a3babSopenharmony_ci[maxvertexcount(3)]
7617a3babSopenharmony_civoid main(triangle in float4 pos[3] : SV_Position, 
8617a3babSopenharmony_ci          triangle in uint VertexID[3] : VertexID,
9617a3babSopenharmony_ci          inout LineStream<S> OutputStream,
10617a3babSopenharmony_ci          triangle in float4 clip[3] : SV_ClipDistance)   // externally: an array 3 of array 4 (not vec4!) of float.
11617a3babSopenharmony_ci{
12617a3babSopenharmony_ci    S s;
13617a3babSopenharmony_ci
14617a3babSopenharmony_ci    s.pos = pos[0];
15617a3babSopenharmony_ci    s.clip = clip[0].xy;
16617a3babSopenharmony_ci
17617a3babSopenharmony_ci    OutputStream.Append(s);
18617a3babSopenharmony_ci}
19617a3babSopenharmony_ci
20