| struct HullInputType |
| { |
| float4 position : SV_Position; |
| }; |
| |
| struct ConstantOutputType |
| { |
| float edges[3] : SV_TessFactor; |
| float inside : SV_InsideTessFactor; |
| }; |
| struct EmptyStruct {}; |
| |
| struct HullOutputType {}; |
| |
| void blob(InputPatch<HullInputType, 3> patch) |
| { |
| } |
| |
| ConstantOutputType ColorPatchConstantFunction(InputPatch<HullInputType, 3> 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<HullInputType, 3> patch, uint pointId : SV_OutputControlPointID, uint patchId : SV_PrimitiveID) |
| { |
| HullOutputType output; |
| blob(patch); |
| |
| return output; |
| } |
| |