1617a3babSopenharmony_cistruct S { 2617a3babSopenharmony_ci float4 pos : SV_Position; 3617a3babSopenharmony_ci float2 clip0 : SV_ClipDistance0; // clip0 and clip1 form an array of float[4] externally. 4617a3babSopenharmony_ci float2 clip1 : SV_ClipDistance1; 5617a3babSopenharmony_ci}; 6617a3babSopenharmony_ci 7617a3babSopenharmony_ci[maxvertexcount(3)] 8617a3babSopenharmony_civoid main(triangle in float4 pos[3] : SV_Position, 9617a3babSopenharmony_ci triangle in uint VertexID[3] : VertexID, 10617a3babSopenharmony_ci inout LineStream<S> OutputStream, 11617a3babSopenharmony_ci triangle in float2 clip0[3] : SV_ClipDistance0, // test input arrayed semantic vars 12617a3babSopenharmony_ci triangle in float2 clip1[3] : SV_ClipDistance1) 13617a3babSopenharmony_ci{ 14617a3babSopenharmony_ci S s; 15617a3babSopenharmony_ci 16617a3babSopenharmony_ci s.pos = pos[0]; 17617a3babSopenharmony_ci s.clip0 = clip0[0]; 18617a3babSopenharmony_ci s.clip1 = clip1[0]; 19617a3babSopenharmony_ci 20617a3babSopenharmony_ci OutputStream.Append(s); 21617a3babSopenharmony_ci} 22