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