1617a3babSopenharmony_cistruct HullInputType
2617a3babSopenharmony_ci{
3617a3babSopenharmony_ci    float4 position : SV_Position;
4617a3babSopenharmony_ci};
5617a3babSopenharmony_ci
6617a3babSopenharmony_cistruct ConstantOutputType
7617a3babSopenharmony_ci{
8617a3babSopenharmony_ci    float edges[3] : SV_TessFactor;
9617a3babSopenharmony_ci    float inside : SV_InsideTessFactor;
10617a3babSopenharmony_ci};
11617a3babSopenharmony_cistruct EmptyStruct {};
12617a3babSopenharmony_ci
13617a3babSopenharmony_cistruct HullOutputType {};
14617a3babSopenharmony_ci
15617a3babSopenharmony_civoid blob(InputPatch<HullInputType, 3> patch)
16617a3babSopenharmony_ci{
17617a3babSopenharmony_ci}
18617a3babSopenharmony_ci
19617a3babSopenharmony_ciConstantOutputType ColorPatchConstantFunction(InputPatch<HullInputType, 3> inputPatch, uint patchId : SV_PrimitiveID)
20617a3babSopenharmony_ci{
21617a3babSopenharmony_ci    ConstantOutputType output;
22617a3babSopenharmony_ci
23617a3babSopenharmony_ci	// Set the tessellation factors for the three edges of the triangle.
24617a3babSopenharmony_ci    output.edges[0] = 2;
25617a3babSopenharmony_ci    output.edges[1] = 2;
26617a3babSopenharmony_ci    output.edges[2] = 2;
27617a3babSopenharmony_ci
28617a3babSopenharmony_ci	// Set the tessellation factor for tessallating inside the triangle.
29617a3babSopenharmony_ci    output.inside = 2;
30617a3babSopenharmony_ci
31617a3babSopenharmony_ci    return output;
32617a3babSopenharmony_ci}
33617a3babSopenharmony_ci
34617a3babSopenharmony_ci
35617a3babSopenharmony_ci// Hull Shader
36617a3babSopenharmony_ci[domain("tri")]
37617a3babSopenharmony_ci[partitioning("integer")]
38617a3babSopenharmony_ci[outputtopology("triangle_cw")]
39617a3babSopenharmony_ci[outputcontrolpoints(3)]
40617a3babSopenharmony_ci[patchconstantfunc("ColorPatchConstantFunction")]
41617a3babSopenharmony_ciHullOutputType main(EmptyStruct stage_input, InputPatch<HullInputType, 3> patch, uint pointId : SV_OutputControlPointID, uint patchId : SV_PrimitiveID)
42617a3babSopenharmony_ci{
43617a3babSopenharmony_ci    HullOutputType output;
44617a3babSopenharmony_ci    blob(patch);
45617a3babSopenharmony_ci
46617a3babSopenharmony_ci    return output;
47617a3babSopenharmony_ci}
48617a3babSopenharmony_ci
49