| /* |
| * Vertex shader test. |
| * Uses all conventional attributes and 15 generic attributes to print |
| * their values, using printMESA() extension function, to the debugger |
| * to compare them with the actual passed-in values. |
| * Use different types for generic attributes to check matrix handling. |
| * |
| * Author: Michal Krol |
| */ |
| |
| #version 110 |
| |
| #extension MESA_shader_debug: require |
| |
| attribute vec4 Attribute1; |
| attribute vec4 Attribute2; |
| attribute vec4 Attribute3; |
| attribute float Attribute4; |
| attribute vec2 Attribute5; |
| attribute vec3 Attribute6; |
| attribute mat2 Attribute7; |
| attribute mat3 Attribute9; |
| attribute mat4 Attribute12; |
| |
| void main () |
| { |
| // |
| // Do some legal stuff. |
| // |
| gl_Position = gl_ModelViewMatrix * gl_Vertex; |
| gl_FrontColor = vec4 (1.0); |
| |
| // |
| // Conventional attributes - except for gl_Vertex. |
| // |
| printMESA (gl_Color); |
| printMESA (gl_SecondaryColor); |
| printMESA (gl_Normal); |
| printMESA (gl_MultiTexCoord0); |
| printMESA (gl_MultiTexCoord1); |
| printMESA (gl_MultiTexCoord2); |
| printMESA (gl_MultiTexCoord3); |
| printMESA (gl_MultiTexCoord4); |
| printMESA (gl_MultiTexCoord5); |
| printMESA (gl_MultiTexCoord6); |
| printMESA (gl_MultiTexCoord7); |
| printMESA (gl_FogCoord); |
| |
| // |
| // Generic attributes - attrib with index 0 is not used because it would |
| // alias with gl_Vertex, which is not allowed. |
| // |
| printMESA (Attribute1); |
| printMESA (Attribute2); |
| printMESA (Attribute3); |
| printMESA (Attribute4); |
| printMESA (Attribute5); |
| printMESA (Attribute6); |
| printMESA (Attribute7); |
| printMESA (Attribute9); |
| printMESA (Attribute12); |
| |
| // |
| // Vertex position goes last. |
| // |
| printMESA (gl_Vertex); |
| } |
| |