Tessellation partial implementation (not ready for use yet), including:
 - the built-in constants
 - built-in variable declarations, some dependent on gl_MaxPatchVertices
 - layout qualifier for vertices (shared with geometry shader max_vertices)
 - layout qualifiers for vertex spacing, vertex order, point mode, and primitive type
 - link semantics for layout qualifiers

Still TBD:
 - patch qualifier and arrayed input handling
 - sizing of gl_out[]
 - additional semantic checking
 - supporting the extension on version 150

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24468 e7fa87d3-cd2b-0410-9028-fcbf551c1848
diff --git a/Test/400.tese b/Test/400.tese
index e6c4e25..66b0eb1 100644
--- a/Test/400.tese
+++ b/Test/400.tese
@@ -1,6 +1,42 @@
 #version 400 core

 

+layout(vertices = 4) out; // ERROR

+layout(quads, cw) in;

+layout(triangles) in;     // ERROR

+layout(isolines) in;      // ERROR

+

+layout(cw) in;

+layout(ccw) in;           // ERROR

+

+layout(fractional_odd_spacing) in;    

+layout(equal_spacing) in;              // ERROR

+layout(fractional_even_spacing) in;    // ERROR

+

+layout(point_mode) in;

+

 void main()

 {

     barrier(); // ERROR

+

+    int a = gl_MaxTessEvaluationInputComponents +

+            gl_MaxTessEvaluationOutputComponents +

+            gl_MaxTessEvaluationTextureImageUnits +

+            gl_MaxTessEvaluationUniformComponents +

+            gl_MaxTessPatchComponents +

+            gl_MaxPatchVertices +

+            gl_MaxTessGenLevel;

+

+    vec4 p = gl_in[1].gl_Position;

+    float ps = gl_in[1].gl_PointSize;

+    float cd = gl_in[1].gl_ClipDistance[2];

+

+    int pvi = gl_PatchVerticesIn;

+    int pid = gl_PrimitiveID;

+    vec3 tc = gl_TessCoord;

+    float tlo = gl_TessLevelOuter[3];

+    float tli = gl_TessLevelInner[1];

+

+    gl_Position = p;

+    gl_PointSize = ps;

+    gl_ClipDistance[2] = cd;

 }