struct HullInputType { float4 position : SV_Position; }; struct ConstantOutputType { float edges[3] : SV_TessFactor; float inside : SV_InsideTessFactor; }; struct EmptyStruct {}; struct HullOutputType {}; void blob(InputPatch patch) { } ConstantOutputType ColorPatchConstantFunction(InputPatch inputPatch, uint patchId : SV_PrimitiveID) { ConstantOutputType output; // Set the tessellation factors for the three edges of the triangle. output.edges[0] = 2; output.edges[1] = 2; output.edges[2] = 2; // Set the tessellation factor for tessallating inside the triangle. output.inside = 2; return output; } // Hull Shader [domain("tri")] [partitioning("integer")] [outputtopology("triangle_cw")] [outputcontrolpoints(3)] [patchconstantfunc("ColorPatchConstantFunction")] HullOutputType main(EmptyStruct stage_input, InputPatch patch, uint pointId : SV_OutputControlPointID, uint patchId : SV_PrimitiveID) { HullOutputType output; blob(patch); return output; }