• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1layout(key) in half one;                       // always equals 1.0
2layout(key, when=one != 1.0f) in half unused;  // never used
3layout(key) float alsoUnused = one + one;      // also never used
4
5half4 main() {
6    half4 color = half4(0);
7
8    // Basic if statement. (00 == 00: true --> color=0001)
9    if (color.rg == color.ba) color.a = one;
10
11    // Basic if statement with Block. (00 == 01: false)
12    if (color.rg == color.ba) {
13        color.r = color.a;
14    }
15
16    // TODO(skia:11872): Add test for If statement with comma-expression statement instead of Block.
17
18    // Basic if-else statement. (0 == 0: true --> color=1011)
19    if (color.r == color.g) color = color.araa; else color = color.rrra;
20
21    // Chained if-else statements.
22    if (color.r + color.g + color.b + color.a == one) {  // (3 == 1: false)
23        color = half4(-1);
24    } else if (color.r + color.g + color.b + color.a == 2) {  // (3 == 2: false)
25        color = half4(-2);
26    } else {
27        color = color.ggaa; // (color=0011)
28    }
29
30    // Nested if-else statements.
31    if (color.r == one) {  // (0 == 1: false)
32        if (color.r == 2) {
33            color = color.rrrr;
34        } else {
35            color = color.gggg;
36        }
37    } else {
38        if (color.b * color.a == one) { // (1*1 == 1: true)
39            color = color.rbga; // (color = 0101)
40        } else {
41            color = color.aaaa;
42        }
43    }
44
45    @if (one != 1.0) {
46        color.r = 1;
47    }
48
49    return color;
50}
51