out vec4 sk_FragColor; uniform vec4 colorGreen; uniform vec4 colorRed; vec4 main() { bool ok = true; int i = 5; i++; ok = ok && i++ == 6; ok = ok && i == 7; ok = ok && i-- == 7; ok = ok && i == 6; i--; ok = ok && i == 5; float f = 0.5; f++; ok = ok && f++ == 1.5; ok = ok && f == 2.5; ok = ok && f-- == 2.5; ok = ok && f == 1.5; f--; ok = ok && f == 0.5; vec2 f2 = vec2(0.5); f2.x++; ok = ok && f2.x++ == 1.5; ok = ok && f2.x == 2.5; ok = ok && f2.x-- == 2.5; ok = ok && f2.x == 1.5; f2.x--; ok = ok && f2.x == 0.5; f2++; ok = ok && f2++ == vec2(1.5); ok = ok && f2 == vec2(2.5); ok = ok && f2-- == vec2(2.5); ok = ok && f2 == vec2(1.5); f2--; ok = ok && f2 == vec2(0.5); ivec4 i4 = ivec4(7, 8, 9, 10); i4++; ok = ok && i4++ == ivec4(8, 9, 10, 11); ok = ok && i4 == ivec4(9, 10, 11, 12); ok = ok && i4-- == ivec4(9, 10, 11, 12); ok = ok && i4 == ivec4(8, 9, 10, 11); i4--; ok = ok && i4 == ivec4(7, 8, 9, 10); mat3 m3x3 = mat3(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0); m3x3++; ok = ok && m3x3++ == mat3(2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0); ok = ok && m3x3 == mat3(3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0); ok = ok && m3x3-- == mat3(3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0); ok = ok && m3x3 == mat3(2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0); m3x3--; ok = ok && m3x3 == mat3(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0); return ok ? colorGreen : colorRed; }