xref: /aosp_15_r20/external/skia/resources/sksl/workarounds/RewriteMatrixComparisons.sksl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker/*#pragma settings RewriteMatrixComparisons*/
2*c8dee2aaSAndroid Build Coastguard Worker
3*c8dee2aaSAndroid Build Coastguard Worker// This is patterned on MatrixEquality.sksl.
4*c8dee2aaSAndroid Build Coastguard Workeruniform half4 colorGreen, colorRed;
5*c8dee2aaSAndroid Build Coastguard Workeruniform half2x2 testHalf2x2;
6*c8dee2aaSAndroid Build Coastguard Workeruniform float2x2 testFloat2x2;
7*c8dee2aaSAndroid Build Coastguard Workeruniform half3x3 testHalf3x3;
8*c8dee2aaSAndroid Build Coastguard Workeruniform float4x2 testFloat4x2;
9*c8dee2aaSAndroid Build Coastguard Worker
10*c8dee2aaSAndroid Build Coastguard Workerbool test_equality() {
11*c8dee2aaSAndroid Build Coastguard Worker    bool ok = true;
12*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && testHalf2x2 == half2x2(1,2,3,4);
13*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && testFloat2x2 == half2x2(5,6,7,8);
14*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && testHalf2x2 != half2x2(123);
15*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && testFloat2x2 != half2x2(456);
16*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && testHalf3x3 == half3x3(1,2,3,4,5,6,7,8,9);
17*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && testFloat4x2 != float4x2(1,2,3,4,5,6,7,8);
18*c8dee2aaSAndroid Build Coastguard Worker    return ok;
19*c8dee2aaSAndroid Build Coastguard Worker}
20*c8dee2aaSAndroid Build Coastguard Worker
21*c8dee2aaSAndroid Build Coastguard Workerhalf4 main(float2 coords) {
22*c8dee2aaSAndroid Build Coastguard Worker    return test_equality() ? colorGreen : colorRed;
23*c8dee2aaSAndroid Build Coastguard Worker}
24