John Kessenich | 1f2a36b | 2013-02-20 04:42:42 +0000 | [diff] [blame] | 1 | #version 300 es |
| 2 | |
| 3 | uniform mat4x3 m43; |
| 4 | uniform mat3x3 m33; |
| 5 | uniform mat4x4 m44; |
| 6 | |
| 7 | in vec3 v3; |
John Kessenich | c2ff770 | 2013-04-25 16:44:03 +0000 | [diff] [blame] | 8 | varying vec2 v2; // ERROR |
John Kessenich | 1f2a36b | 2013-02-20 04:42:42 +0000 | [diff] [blame] | 9 | |
John Kessenich | b51f62c | 2013-04-11 16:31:09 +0000 | [diff] [blame] | 10 | in vec4 bad[10]; // ERROR |
John Kessenich | 3ed2db5 | 2013-04-07 22:43:16 +0000 | [diff] [blame] | 11 | |
John Kessenich | 1f2a36b | 2013-02-20 04:42:42 +0000 | [diff] [blame] | 12 | void main() |
| 13 | { |
| 14 | int id = gl_VertexID + gl_InstanceID; |
| 15 | |
| 16 | int c0 = gl_MaxVertexAttribs; |
| 17 | int c1 = gl_MaxVertexUniformVectors; |
| 18 | int c2 = gl_MaxVertexOutputVectors; |
| 19 | int c3 = gl_MaxFragmentInputVectors; |
| 20 | int c4 = gl_MaxVertexTextureImageUnits; |
| 21 | int c5 = gl_MaxCombinedTextureImageUnits; |
| 22 | int c6 = gl_MaxTextureImageUnits; |
| 23 | int c7 = gl_MaxFragmentUniformVectors; |
| 24 | int c8 = gl_MaxDrawBuffers; |
| 25 | int c9 = gl_MinProgramTexelOffset; |
| 26 | int c10 = gl_MaxProgramTexelOffset; |
| 27 | |
| 28 | mat3x4 tm = transpose(m43); |
| 29 | highp float dm = determinant(m44); |
| 30 | mat3x3 im = inverse(m33); |
| 31 | |
| 32 | mat3x2 op = outerProduct(v2, v3); |
John Kessenich | b51f62c | 2013-04-11 16:31:09 +0000 | [diff] [blame] | 33 | |
John Kessenich | 3ce5745 | 2013-06-07 18:54:19 +0000 | [diff] [blame] | 34 | gl_Position = m44[2]; |
| 35 | gl_PointSize = v2.y; |
| 36 | |
John Kessenich | b51f62c | 2013-04-11 16:31:09 +0000 | [diff] [blame] | 37 | #ifdef GL_ES |
| 38 | #error GL_ES is set |
| 39 | #else |
| 40 | #error GL_ES is not set |
| 41 | #endif |
John Kessenich | 1f2a36b | 2013-02-20 04:42:42 +0000 | [diff] [blame] | 42 | } |
John Kessenich | fb7044a | 2013-06-13 20:16:43 +0000 | [diff] [blame] | 43 | |
| 44 | float badsize[]; // ERROR |
| 45 | float[] badsize2; // ERROR |
| 46 | uniform ub { |
| 47 | int a[]; // ERROR |
| 48 | } ubInst[]; // ERROR |
| 49 | void foo(int a[]); // ERROR |
| 50 | float okayA[] = float[](3.0, 4.0); // Okay |