Update rive-cpp to 2.0 version
[platform/core/uifw/rive-tizen.git] / submodule / skia / resources / sksl / runtime / RecursiveComparison_Types.rts
1 #version 300
2
3 uniform half4 colorGreen, colorRed;
4
5 struct S {float f1; vec2 v2; };
6
7 bool test_same_types(bool eq, float f1, float v2, float f3, float f4, float f5, float f6) {
8     float one = colorGreen.r + 1;
9     S a[2]; a[0].f1 = f1;       a[0].v2 = vec2(v2, f3);
10             a[1].f1 = f4;       a[1].v2 = vec2(f5, f6);
11     S b[2]; b[0].f1 = f1 * one; b[0].v2 = vec2(v2 * one, f3 * one);
12             b[1].f1 = f4 * one; b[1].v2 = vec2(f5 * one, f6 * one);
13     return eq ? a == b : a != b;
14 }
15
16 bool test_diff_types(bool eq, float f1, float v2, float f3, float f4, float f5, float f6) {
17     float two = colorGreen.r + 2;
18     S a[2]; a[0].f1 = f1;       a[0].v2 = vec2(v2, f3);
19             a[1].f1 = f4;       a[1].v2 = vec2(f5, f6);
20     S b[2]; b[0].f1 = f1 * two; b[0].v2 = vec2(v2 * two, f3 * two);
21             b[1].f1 = f4 * two; b[1].v2 = vec2(f5 * two, f6);
22     return eq ? a == b : a != b;
23 }
24
25 vec4 main(vec2 coords) {
26
27     float NAN1 = colorGreen.r/colorGreen.b;
28     float NAN2 = colorGreen.b/colorGreen.r;
29     float ZP = +colorGreen.r*colorGreen.b;
30     float ZM = -colorGreen.r*colorGreen.b;
31     float F42 = colorGreen.g * 42.0;
32     float F43 = colorGreen.g * 43.0;
33     float F44 = colorGreen.g * 44.0;
34     float F45 = colorGreen.g * 45.0;
35     float F46 = colorGreen.g * 46.0;
36     float F47 = colorGreen.g * 47.0;
37
38     bool EQ = true;     // Tests for ==
39     bool NE = false;    // Tests for !=
40
41     return  true
42     && test_same_types(EQ, F42, ZM, ZP, F43, F44, F45)      // equal, including -0 and +0 values
43     && !test_same_types(NE, F42, ZM, ZP, F43, F44, F45)     // not (not equal)
44     && test_same_types(NE, F42, NAN1, NAN2, F43, F44, F45)  // NA values always not equal
45     && !test_same_types(EQ, F42, NAN1, NAN2, F43, F44, F45)
46     && test_diff_types(NE, F42, F43, F44, F45, F46, F47)    // one of the normal values not equal
47     && !test_diff_types(EQ, F42, F43, F44, F45, F46, F47)
48     && test_diff_types(NE, NAN1, ZM, ZP, F42, F43, F44)     // one of the normal values not equal
49     && !test_diff_types(EQ, NAN1, ZM, ZP, F42, F43, F44)
50    ? colorGreen : colorRed;
51 }