blob: bc848930257cb9fe772bf38af5a483f95065f3d8 [file] [log] [blame]
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;
}