mirror of
https://github.com/KhronosGroup/glslang
synced 2024-09-19 20:29:54 +00:00
49 lines
1.0 KiB
Plaintext
49 lines
1.0 KiB
Plaintext
|
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;
|
||
|
}
|
||
|
|