xref: /aosp_15_r20/external/skia/resources/sksl/shared/IfStatement.sksl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Workeruniform half4 colorWhite;
2*c8dee2aaSAndroid Build Coastguard Worker
3*c8dee2aaSAndroid Build Coastguard Workerhalf4 ifElseTest(half4 colorBlue, half4 colorGreen, half4 colorRed) {
4*c8dee2aaSAndroid Build Coastguard Worker    half4 result = half4(0);
5*c8dee2aaSAndroid Build Coastguard Worker    if (colorWhite != colorBlue) {    // TRUE
6*c8dee2aaSAndroid Build Coastguard Worker        if (colorGreen == colorRed) { // FALSE
7*c8dee2aaSAndroid Build Coastguard Worker            result = colorRed;
8*c8dee2aaSAndroid Build Coastguard Worker        } else {
9*c8dee2aaSAndroid Build Coastguard Worker            result = colorGreen;
10*c8dee2aaSAndroid Build Coastguard Worker        }
11*c8dee2aaSAndroid Build Coastguard Worker    } else {
12*c8dee2aaSAndroid Build Coastguard Worker        if (colorRed != colorGreen) { // TRUE, but in a false branch
13*c8dee2aaSAndroid Build Coastguard Worker            result = colorBlue;
14*c8dee2aaSAndroid Build Coastguard Worker        } else {                      // FALSE, and in a false branch
15*c8dee2aaSAndroid Build Coastguard Worker            result = colorWhite;
16*c8dee2aaSAndroid Build Coastguard Worker        }
17*c8dee2aaSAndroid Build Coastguard Worker    }
18*c8dee2aaSAndroid Build Coastguard Worker    if (colorRed == colorBlue) { // FALSE
19*c8dee2aaSAndroid Build Coastguard Worker        return colorWhite;
20*c8dee2aaSAndroid Build Coastguard Worker    }
21*c8dee2aaSAndroid Build Coastguard Worker    if (colorRed != colorGreen) { // TRUE
22*c8dee2aaSAndroid Build Coastguard Worker        return result;
23*c8dee2aaSAndroid Build Coastguard Worker    }
24*c8dee2aaSAndroid Build Coastguard Worker    if (colorRed == colorWhite) { // FALSE
25*c8dee2aaSAndroid Build Coastguard Worker        return colorBlue;
26*c8dee2aaSAndroid Build Coastguard Worker    }
27*c8dee2aaSAndroid Build Coastguard Worker    return colorRed;
28*c8dee2aaSAndroid Build Coastguard Worker}
29*c8dee2aaSAndroid Build Coastguard Worker
30*c8dee2aaSAndroid Build Coastguard Workerhalf4 main(float2) {
31*c8dee2aaSAndroid Build Coastguard Worker    return ifElseTest(colorWhite.00b1, colorWhite.0g01, colorWhite.r001);
32*c8dee2aaSAndroid Build Coastguard Worker}
33