1[require] 2GLSL >= 1.50 3GL_ARB_tessellation_shader 4 5 6[vertex shader] 7#version 150 8in vec4 vertex; 9 10void main() 11{ 12 gl_Position = vertex; 13} 14 15[tessellation control shader] 16#version 150 17#extension GL_ARB_tessellation_shader: require 18 19layout(vertices = 3) out; 20 21void main() 22{ 23 gl_TessLevelInner[0] = 1.0; 24 gl_TessLevelInner[1] = 1.0; 25 gl_TessLevelOuter[0] = 1.0; 26 gl_TessLevelOuter[1] = 1.0; 27 gl_TessLevelOuter[2] = 1.0; 28 gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position; 29} 30 31[tessellation evaluation shader] 32#version 150 33#extension GL_ARB_tessellation_shader: require 34 35layout(triangles) in; 36 37void main() 38{ 39 int index = int(gl_TessCoord.y + (2 * gl_TessCoord.z)); 40 gl_Position = gl_in[index].gl_Position; 41} 42 43[fragment shader] 44#version 150 45 46void main() 47{ 48 gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); 49} 50 51[vertex data] 52vertex/float/2 53-1.0 -1.0 54 1.0 -1.0 55-1.0 1.0 56-1.0 1.0 57 1.0 -1.0 58 1.0 1.0 59 60[test] 61clear color 0.1 0.1 0.1 0.1 62clear 63patch parameter vertices 3 64draw arrays GL_PATCHES 0 6 65probe all rgba 0.0 1.0 0.0 1.0 66