1617a3babSopenharmony_cistruct S {
2617a3babSopenharmony_ci    float4 pos     : SV_Position;
3617a3babSopenharmony_ci    float2 clip[2] : 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 float2 clip[3][2] : SV_ClipDistance) // externally: an array 3 of array 4 of float.
11617a3babSopenharmony_ci{
12617a3babSopenharmony_ci    S s;
13617a3babSopenharmony_ci
14617a3babSopenharmony_ci    s.pos = pos[0];
15617a3babSopenharmony_ci    s.clip[0] = clip[0][0];
16617a3babSopenharmony_ci    s.clip[1] = clip[0][1];
17617a3babSopenharmony_ci
18617a3babSopenharmony_ci    OutputStream.Append(s);
19617a3babSopenharmony_ci}
20