xref: /aosp_15_r20/external/skia/resources/sksl/shared/ArrayCast.sksl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker/*#pragma settings UsesPrecisionModifiers*/
2*c8dee2aaSAndroid Build Coastguard Worker
3*c8dee2aaSAndroid Build Coastguard Workeruniform half4 colorGreen, colorRed;
4*c8dee2aaSAndroid Build Coastguard Worker
5*c8dee2aaSAndroid Build Coastguard Workerhalf4 main(float2 coords) {
6*c8dee2aaSAndroid Build Coastguard Worker    float    f[4] = float[4](1, 2, 3, 4);
7*c8dee2aaSAndroid Build Coastguard Worker    half     h[4] = half[4](f);
8*c8dee2aaSAndroid Build Coastguard Worker    f = float[4](h);
9*c8dee2aaSAndroid Build Coastguard Worker    h =  half[4](f);
10*c8dee2aaSAndroid Build Coastguard Worker
11*c8dee2aaSAndroid Build Coastguard Worker    int3     i3[3] = int3[3](int3(1), int3(2), int3(3));
12*c8dee2aaSAndroid Build Coastguard Worker    short3   s3[3] = short3[3](i3);
13*c8dee2aaSAndroid Build Coastguard Worker    i3 =   int3[3](s3);
14*c8dee2aaSAndroid Build Coastguard Worker    s3 = short3[3](i3);
15*c8dee2aaSAndroid Build Coastguard Worker
16*c8dee2aaSAndroid Build Coastguard Worker    half2x2  h2x2[2] = half2x2[2](half2x2(1, 2, 3, 4), half2x2(5, 6, 7, 8));
17*c8dee2aaSAndroid Build Coastguard Worker    float2x2 f2x2[2] = float2x2[2](h2x2);
18*c8dee2aaSAndroid Build Coastguard Worker    f2x2 = float2x2[2](h2x2);
19*c8dee2aaSAndroid Build Coastguard Worker    h2x2 =  half2x2[2](f2x2);
20*c8dee2aaSAndroid Build Coastguard Worker
21*c8dee2aaSAndroid Build Coastguard Worker    return (f == h && i3 == s3 && f2x2 == h2x2) ? colorGreen : colorRed;
22*c8dee2aaSAndroid Build Coastguard Worker}
23