xref: /aosp_15_r20/external/skia/resources/sksl/shared/CompileTimeConstantVariables.sksl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Workerconst int kConstant = 0;
2*c8dee2aaSAndroid Build Coastguard Workerconst int kOtherConstant = 1;
3*c8dee2aaSAndroid Build Coastguard Workerconst int kAnotherConstant = 2;
4*c8dee2aaSAndroid Build Coastguard Workerconst float kFloatConstant = 2.14;
5*c8dee2aaSAndroid Build Coastguard Workerconst float kFloatConstantAlias = kFloatConstant;
6*c8dee2aaSAndroid Build Coastguard Workerconst half4 kConstVec = half4(1, 0.2, kFloatConstant, 1);
7*c8dee2aaSAndroid Build Coastguard Worker
8*c8dee2aaSAndroid Build Coastguard Workeruniform half4 colorGreen;
9*c8dee2aaSAndroid Build Coastguard Worker
10*c8dee2aaSAndroid Build Coastguard Workerhalf4 main(float2) {
11*c8dee2aaSAndroid Build Coastguard Worker    const float kLocalFloatConstant = 1.0 + kFloatConstantAlias;
12*c8dee2aaSAndroid Build Coastguard Worker    const float kLocalFloatConstantAlias = kLocalFloatConstant;
13*c8dee2aaSAndroid Build Coastguard Worker    int integerInput = int(colorGreen.g);
14*c8dee2aaSAndroid Build Coastguard Worker
15*c8dee2aaSAndroid Build Coastguard Worker    if (integerInput == kConstant) {
16*c8dee2aaSAndroid Build Coastguard Worker        return half4(kFloatConstant);
17*c8dee2aaSAndroid Build Coastguard Worker    } else if (integerInput == kOtherConstant) {
18*c8dee2aaSAndroid Build Coastguard Worker        return colorGreen;  // the shader is expected to always take this path
19*c8dee2aaSAndroid Build Coastguard Worker    } else if (integerInput == kAnotherConstant) {
20*c8dee2aaSAndroid Build Coastguard Worker        return kConstVec;
21*c8dee2aaSAndroid Build Coastguard Worker    } else if (kLocalFloatConstantAlias < colorGreen.r * kLocalFloatConstant) {
22*c8dee2aaSAndroid Build Coastguard Worker        return half4(kLocalFloatConstantAlias);
23*c8dee2aaSAndroid Build Coastguard Worker    } else if (kFloatConstantAlias >= colorGreen.r * kFloatConstantAlias) {
24*c8dee2aaSAndroid Build Coastguard Worker        return half4(0);
25*c8dee2aaSAndroid Build Coastguard Worker    } else {
26*c8dee2aaSAndroid Build Coastguard Worker        return half4(1, 0, 0, 1);
27*c8dee2aaSAndroid Build Coastguard Worker    }
28*c8dee2aaSAndroid Build Coastguard Worker}
29