xref: /aosp_15_r20/external/skia/resources/sksl/shared/IntegerDivisionES3.sksl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Workeruniform half4 colorGreen;
2*c8dee2aaSAndroid Build Coastguard Worker
3*c8dee2aaSAndroid Build Coastguard Workerint exact_division(int x, int y) {
4*c8dee2aaSAndroid Build Coastguard Worker    int result = 0;
5*c8dee2aaSAndroid Build Coastguard Worker    while (x >= y) {
6*c8dee2aaSAndroid Build Coastguard Worker        ++result;
7*c8dee2aaSAndroid Build Coastguard Worker        x -= y;
8*c8dee2aaSAndroid Build Coastguard Worker    }
9*c8dee2aaSAndroid Build Coastguard Worker    return result;
10*c8dee2aaSAndroid Build Coastguard Worker}
11*c8dee2aaSAndroid Build Coastguard Worker
12*c8dee2aaSAndroid Build Coastguard Workerhalf4 main(float2 coords) {
13*c8dee2aaSAndroid Build Coastguard Worker    int zero = int(colorGreen.r);
14*c8dee2aaSAndroid Build Coastguard Worker    int one  = int(colorGreen.g);
15*c8dee2aaSAndroid Build Coastguard Worker
16*c8dee2aaSAndroid Build Coastguard Worker    for (int x = zero; x < 100; ++x) {
17*c8dee2aaSAndroid Build Coastguard Worker        for (int y = one; y < 100; ++y) {
18*c8dee2aaSAndroid Build Coastguard Worker            if ((x/y) != exact_division(x, y)) {
19*c8dee2aaSAndroid Build Coastguard Worker                return half4(1, float(x) / 255, float(y) / 255, 1);
20*c8dee2aaSAndroid Build Coastguard Worker            }
21*c8dee2aaSAndroid Build Coastguard Worker        }
22*c8dee2aaSAndroid Build Coastguard Worker    }
23*c8dee2aaSAndroid Build Coastguard Worker
24*c8dee2aaSAndroid Build Coastguard Worker    return colorGreen;
25*c8dee2aaSAndroid Build Coastguard Worker}
26