xref: /aosp_15_r20/external/skia/tests/sksl/shared/OperatorsES3.glsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker
2*c8dee2aaSAndroid Build Coastguard Workerout vec4 sk_FragColor;
3*c8dee2aaSAndroid Build Coastguard Workeruniform vec4 colorGreen;
4*c8dee2aaSAndroid Build Coastguard Workeruniform vec4 colorRed;
5*c8dee2aaSAndroid Build Coastguard Workeruniform float unknownInput;
6*c8dee2aaSAndroid Build Coastguard Workervec4 main() {
7*c8dee2aaSAndroid Build Coastguard Worker    float x = 1.0;
8*c8dee2aaSAndroid Build Coastguard Worker    float y = 2.0;
9*c8dee2aaSAndroid Build Coastguard Worker    int z = 3;
10*c8dee2aaSAndroid Build Coastguard Worker    x = (x - x) + ((y * x) * x) * (y - x);
11*c8dee2aaSAndroid Build Coastguard Worker    y = (x / y) / x;
12*c8dee2aaSAndroid Build Coastguard Worker    z = (((z / 2) % 3 << 4) >> 2) << 1;
13*c8dee2aaSAndroid Build Coastguard Worker    bool b = x > 4.0 == x < 2.0 || 2.0 >= unknownInput && y <= x;
14*c8dee2aaSAndroid Build Coastguard Worker    bool c = unknownInput > 2.0;
15*c8dee2aaSAndroid Build Coastguard Worker    bool d = b ^^ c;
16*c8dee2aaSAndroid Build Coastguard Worker    bool e = b && c;
17*c8dee2aaSAndroid Build Coastguard Worker    bool f = b || c;
18*c8dee2aaSAndroid Build Coastguard Worker    x += 12.0;
19*c8dee2aaSAndroid Build Coastguard Worker    x -= 12.0;
20*c8dee2aaSAndroid Build Coastguard Worker    x *= (y *= 0.1);
21*c8dee2aaSAndroid Build Coastguard Worker    z |= 0;
22*c8dee2aaSAndroid Build Coastguard Worker    z &= -1;
23*c8dee2aaSAndroid Build Coastguard Worker    z ^= 0;
24*c8dee2aaSAndroid Build Coastguard Worker    z >>= 2;
25*c8dee2aaSAndroid Build Coastguard Worker    z <<= 4;
26*c8dee2aaSAndroid Build Coastguard Worker    z %= 5;
27*c8dee2aaSAndroid Build Coastguard Worker    x = float((colorGreen.xy, 6));
28*c8dee2aaSAndroid Build Coastguard Worker    y = ((((float(b) * float(c)) * float(d)) * float(e)) * float(f), 6.0);
29*c8dee2aaSAndroid Build Coastguard Worker    z = (colorRed.zw, 6);
30*c8dee2aaSAndroid Build Coastguard Worker    ivec2 w = ivec2(-6);
31*c8dee2aaSAndroid Build Coastguard Worker    w = ~w;
32*c8dee2aaSAndroid Build Coastguard Worker    return (((w.x == 5 && w.y == 5) && x == 6.0) && y == 6.0) && z == 6 ? colorGreen : colorRed;
33*c8dee2aaSAndroid Build Coastguard Worker}
34