40 lines
		
	
	
		
			647 B
		
	
	
	
		
			GLSL
		
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			647 B
		
	
	
	
		
			GLSL
		
	
	
	
// *** 
 | 
						|
// invocation ID coming from synthesized variable
 | 
						|
// ***
 | 
						|
 | 
						|
struct VS_OUT
 | 
						|
{
 | 
						|
    float3 cpoint : CPOINT;
 | 
						|
};
 | 
						|
 | 
						|
struct HS_CONSTANT_OUT
 | 
						|
{
 | 
						|
    float edges[2] : SV_TessFactor;
 | 
						|
};
 | 
						|
 | 
						|
struct HS_OUT
 | 
						|
{
 | 
						|
    float3 cpoint : CPOINT;
 | 
						|
};
 | 
						|
 | 
						|
[domain("tri")]
 | 
						|
[partitioning("integer")]
 | 
						|
[outputtopology("point")]
 | 
						|
[outputcontrolpoints(4)]
 | 
						|
[patchconstantfunc("PCF")]
 | 
						|
HS_OUT main(InputPatch<VS_OUT, 4> ip)
 | 
						|
{
 | 
						|
    HS_OUT output;
 | 
						|
    output.cpoint = ip[0].cpoint;
 | 
						|
    return output;
 | 
						|
}
 | 
						|
 | 
						|
HS_CONSTANT_OUT PCF(uint pid : SV_PrimitiveId, float4 pos : SV_Position)
 | 
						|
{
 | 
						|
    HS_CONSTANT_OUT output;
 | 
						|
    
 | 
						|
    output.edges[0] = 2.0f;
 | 
						|
    output.edges[1] = 8.0f;
 | 
						|
    return output;
 | 
						|
}
 |