• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1uniform half4 colorGreen, colorRed;
2
3half4 main(float2 coords) {
4    const bool TRUE = true;
5    const bool FALSE = false;
6
7    bool ok = true;
8
9    // Literal test
10    ok = ok && (true ? true : false);
11    ok = ok && (false ? false : true);
12
13    // Constant boolean test
14    ok = ok && (TRUE ? true : false);
15    ok = ok && (FALSE ? false : true);
16
17    // Constant-foldable test
18    ok = ok && (1 == 1 ? true : false);
19    ok = ok && (0 == 1 ? false : true);
20
21    // Unknown-value test
22    ok = ok && (colorGreen.g == 1 ? true : false);
23    ok = ok && (colorGreen.r == 1 ? false : true);
24
25    // Composite comparison test.
26    ok = ok && (colorGreen.gr == colorRed.rg ? true : false);
27    ok = ok && (colorGreen.gr != colorRed.rg ? false : true);
28
29    // Test simplification of ternaries to logical-and/logical-or.
30    ok = ok && (colorGreen.gr == colorRed.rg ? true : (colorGreen.a != colorRed.a));
31    ok = ok && (colorGreen.gr != colorRed.rg ? (colorGreen.a == colorRed.a) : false);
32
33    return ok ? colorGreen : colorRed;
34}
35