qt6windows7/tests/auto/gui/rhi/qrhi/data/tessinterfaceblocks.tesc
2023-11-01 22:23:55 +01:00

57 lines
1.7 KiB
GLSL

#version 440
layout(vertices = 3) out;
layout(location = 4) in VertOut
{
vec3 v_color;
int a;
float b;
}vOut[];
layout(location = 5) out TescOutA {
vec3 color;
int id;
}tcOutA[];
layout(location = 10) out TescOutB {
vec2 some;
int other[3];
vec3 variables;
}tcOutB[];
layout(location = 2) patch out TescOutC {
vec3 stuff;
float more_stuff;
}tcOutC;
void main()
{
// tesc builtin outputs
gl_TessLevelOuter[0] = 1.0;
gl_TessLevelOuter[1] = 2.0;
gl_TessLevelOuter[2] = 3.0;
gl_TessLevelOuter[3] = 4.0;
gl_TessLevelInner[0] = 5.0;
gl_TessLevelInner[1] = 6.0;
gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;
gl_out[gl_InvocationID].gl_PointSize = 10 + gl_InvocationID;
gl_out[gl_InvocationID].gl_ClipDistance[0] = 20.0 + gl_InvocationID;
gl_out[gl_InvocationID].gl_ClipDistance[1] = 40.0 + gl_InvocationID;
gl_out[gl_InvocationID].gl_ClipDistance[2] = 60.0 + gl_InvocationID;
gl_out[gl_InvocationID].gl_ClipDistance[3] = 80.0 + gl_InvocationID;
gl_out[gl_InvocationID].gl_ClipDistance[4] = 100.0 + gl_InvocationID;
// outputs
tcOutA[gl_InvocationID].color = vOut[gl_InvocationID].v_color;
tcOutA[gl_InvocationID].id = gl_InvocationID + 91;
tcOutB[gl_InvocationID].some = vec2(gl_InvocationID, vOut[gl_InvocationID].a);
tcOutB[gl_InvocationID].other[0] = gl_PrimitiveID + 10;
tcOutB[gl_InvocationID].other[1] = gl_PrimitiveID + 20;
tcOutB[gl_InvocationID].other[2] = gl_PrimitiveID + 30;
tcOutB[gl_InvocationID].variables = vec3(3.0f, vOut[gl_InvocationID].b, 17.0f);
tcOutC.stuff = vec3(1.0, 2.0, 3.0);
tcOutC.more_stuff = 4.0;
}