xref: /aosp_15_r20/external/skia/resources/sksl/metal/SwizzleHelper.sksl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker/*#pragma settings NoInline*/
2*c8dee2aaSAndroid Build Coastguard Worker
3*c8dee2aaSAndroid Build Coastguard Workerhalf2 glob = half2(1);
4*c8dee2aaSAndroid Build Coastguard Worker
5*c8dee2aaSAndroid Build Coastguard Workerhalf4 fn(half a, out half2 b, inout half2 c, inout half3 d) {
6*c8dee2aaSAndroid Build Coastguard Worker    a = sk_FragColor.r + a;
7*c8dee2aaSAndroid Build Coastguard Worker    b = sk_FragColor.gb - glob.y;
8*c8dee2aaSAndroid Build Coastguard Worker    c *= a;
9*c8dee2aaSAndroid Build Coastguard Worker    d = sk_FragColor.aaa / d;
10*c8dee2aaSAndroid Build Coastguard Worker    return half4(a, b.x, c.y, d.x);
11*c8dee2aaSAndroid Build Coastguard Worker}
12*c8dee2aaSAndroid Build Coastguard Worker
13*c8dee2aaSAndroid Build Coastguard Workervoid main() {
14*c8dee2aaSAndroid Build Coastguard Worker    half2   a = half2(1);
15*c8dee2aaSAndroid Build Coastguard Worker    half3   b = half3(2);
16*c8dee2aaSAndroid Build Coastguard Worker    half4x4 c = half4x4(3);
17*c8dee2aaSAndroid Build Coastguard Worker    half3x3 d = half3x3(4);
18*c8dee2aaSAndroid Build Coastguard Worker
19*c8dee2aaSAndroid Build Coastguard Worker    sk_FragColor = fn(a.x, b.yz, glob.yx, d[1].zyx);
20*c8dee2aaSAndroid Build Coastguard Worker}
21