xref: /aosp_15_r20/external/skia/resources/sksl/wgsl/Equality.sksl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Workeruniform float f1, f2, f3;
2*c8dee2aaSAndroid Build Coastguard Workeruniform half h1, h2, h3;
3*c8dee2aaSAndroid Build Coastguard Workeruniform float2 v1, v2, v3;
4*c8dee2aaSAndroid Build Coastguard Workeruniform half2 hv1, hv2, hv3;
5*c8dee2aaSAndroid Build Coastguard Workeruniform float2x2 m1, m2, m3;
6*c8dee2aaSAndroid Build Coastguard Workeruniform half2x2 hm1, hm2, hm3;
7*c8dee2aaSAndroid Build Coastguard Worker
8*c8dee2aaSAndroid Build Coastguard Workeruniform half4 colorGreen, colorRed;
9*c8dee2aaSAndroid Build Coastguard Worker
10*c8dee2aaSAndroid Build Coastguard Worker// TODO(skia:13092): Test array equality.
11*c8dee2aaSAndroid Build Coastguard Worker
12*c8dee2aaSAndroid Build Coastguard Workerhalf4 main() {
13*c8dee2aaSAndroid Build Coastguard Worker    bool ok = true;
14*c8dee2aaSAndroid Build Coastguard Worker
15*c8dee2aaSAndroid Build Coastguard Worker    // scalars
16*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && f1 == f2;
17*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && h1 == h2;
18*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && f1 == h2;
19*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && h1 == f2;
20*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && f1 != f3;
21*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && h1 != h3;
22*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && f1 != h3;
23*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && h1 != f3;
24*c8dee2aaSAndroid Build Coastguard Worker
25*c8dee2aaSAndroid Build Coastguard Worker    // vectors
26*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && v1  == v2;
27*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && hv1 == hv2;
28*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && v1  == hv2;
29*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && hv1 == v2;
30*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && v1  != v3;
31*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && hv1 != hv3;
32*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && v1  != hv3;
33*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && hv1 != v3;
34*c8dee2aaSAndroid Build Coastguard Worker
35*c8dee2aaSAndroid Build Coastguard Worker    // matrices
36*c8dee2aaSAndroid Build Coastguard Worker    ok = ok &&  m1 == m2;
37*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && hm1 == hm2;
38*c8dee2aaSAndroid Build Coastguard Worker    ok = ok &&  m1 == hm2;
39*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && hm1 == m2;
40*c8dee2aaSAndroid Build Coastguard Worker    ok = ok &&  m1 != m3;
41*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && hm1 != hm3;
42*c8dee2aaSAndroid Build Coastguard Worker    ok = ok &&  m1 != hm3;
43*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && hm1 != m3;
44*c8dee2aaSAndroid Build Coastguard Worker
45*c8dee2aaSAndroid Build Coastguard Worker    return ok ? colorGreen : colorRed;
46*c8dee2aaSAndroid Build Coastguard Worker}
47