Update rive-cpp to 2.0 version
[platform/core/uifw/rive-tizen.git] / submodule / skia / resources / sksl / folding / SwizzleFolding.sksl
1 uniform half4 colorRed, colorGreen;
2
3 bool test() {
4     const half4 colorWhite = half4(1);
5     const half2 point = half2(40, 60);
6
7     bool ok = true;
8     // Comparisons on swizzled constants should fold
9     ok = ok && (point.x >= 0 && point.x <= 100 && point.y >= 0 && point.y <= 100);
10
11     // Arithmetic on swizzled constants should fold
12     ok = ok && (colorWhite.x == 1);
13     ok = ok && (colorWhite.x + colorWhite.y == 2);
14     ok = ok && (colorWhite.x + colorWhite.y + colorWhite.z == 3);
15     ok = ok && (colorWhite.x + colorWhite.y + colorWhite.z + colorWhite.w == 4);
16
17     // No-op arithmetic using swizzled constants should fold away
18     ok = ok && ((colorGreen * colorWhite.x) != (colorRed * colorWhite.y));
19
20     // Folding on swizzles with more than one component should be optimized.
21     const half2 pointOffset = point.yx + colorWhite.xz;
22     ok = ok && (pointOffset == half2(61, 41));
23
24     return ok;
25 }
26
27 half4 main(float2 coords) {
28     return test() ? colorGreen : colorRed;
29 }