1/*
2 * Vertex shader test.
3 * Uses all conventional attributes and 15 generic attributes to print
4 * their values, using printMESA() extension function, to the debugger
5 * to compare them with the actual passed-in values.
6 * Use different types for generic attributes to check matrix handling.
7 *
8 * Author: Michal Krol
9 */
10
11#version 110
12
13#extension MESA_shader_debug: require
14
15attribute vec4 Attribute1;
16attribute vec4 Attribute2;
17attribute vec4 Attribute3;
18attribute float Attribute4;
19attribute vec2 Attribute5;
20attribute vec3 Attribute6;
21attribute mat2 Attribute7;
22attribute mat3 Attribute9;
23attribute mat4 Attribute12;
24
25void main ()
26{
27   //
28   // Do some legal stuff.
29   //
30   gl_Position = gl_ModelViewMatrix * gl_Vertex;
31   gl_FrontColor = vec4 (1.0);
32
33   //
34   // Conventional attributes - except for gl_Vertex.
35   //
36   printMESA (gl_Color);
37   printMESA (gl_SecondaryColor);
38   printMESA (gl_Normal);
39   printMESA (gl_MultiTexCoord0);
40   printMESA (gl_MultiTexCoord1);
41   printMESA (gl_MultiTexCoord2);
42   printMESA (gl_MultiTexCoord3);
43   printMESA (gl_MultiTexCoord4);
44   printMESA (gl_MultiTexCoord5);
45   printMESA (gl_MultiTexCoord6);
46   printMESA (gl_MultiTexCoord7);
47   printMESA (gl_FogCoord);
48
49   //
50   // Generic attributes - attrib with index 0 is not used because it would
51   // alias with gl_Vertex, which is not allowed.
52   //
53   printMESA (Attribute1);
54   printMESA (Attribute2);
55   printMESA (Attribute3);
56   printMESA (Attribute4);
57   printMESA (Attribute5);
58   printMESA (Attribute6);
59   printMESA (Attribute7);
60   printMESA (Attribute9);
61   printMESA (Attribute12);
62
63   //
64   // Vertex position goes last.
65   //
66   printMESA (gl_Vertex);
67}
68
69