| #version 140 | |
| void main() | |
| { | |
| struct s { | |
| float y[5]; | |
| } str; | |
| float t; | |
| int index = 5; // all indexing is 4 | |
| str.y[4] = 2.0; // 2.0 | |
| t = ++str.y[--index]; // 3.0 | |
| str.y[4] += t; // 6.0 | |
| t = str.y[4]--; // 5.0 (t = 6.0) | |
| str.y[index++] += t; // 11.0 | |
| --str.y[--index]; // 10.0 | |
| float x = str.y[4]; | |
| ++x; | |
| --x; | |
| x++; | |
| x--; | |
| // x is 10.0 | |
| float y = x * ++x; // 10 * 11 | |
| float z = y * x--; // 110 * 11 | |
| // x is 10.0 | |
| // z is 1210.0 | |
| vec4 v = vec4(1.0, 2.0, 3.0, 4.0); | |
| v.y = v.z--; // (1,3,2,4) | |
| v.x = --v.w; // (3,3,2,3) | |
| gl_FragColor = z * v;// (3630.0, 3630.0, 2420.0, 3630.0) | |
| } |