Optimize saturation code again.
This adopts a trick from SkVM to avoid sorting entirely. Change-Id: I586c8a3613b48241842a7d8eba1c9d68a4717f83 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/528368 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: John Stiles <johnstiles@google.com> Auto-Submit: John Stiles <johnstiles@google.com>
This commit is contained in:
parent
b1ea9a1a9d
commit
9ef12d72cf
@ -1,4 +1,4 @@
|
||||
static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,189,8,
|
||||
7,100,101,103,114,101,101,115,
|
||||
8,36,103,101,110,84,121,112,101,
|
||||
7,114,97,100,105,97,110,115,
|
||||
@ -216,7 +216,6 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
8,108,117,109,67,111,108,111,114,
|
||||
26,36,98,108,101,110,100,95,115,101,116,95,99,111,108,111,114,95,108,117,109,105,110,97,110,99,101,
|
||||
23,36,98,108,101,110,100,95,99,111,108,111,114,95,115,97,116,117,114,97,116,105,111,110,
|
||||
11,104,117,101,76,117,109,67,111,108,111,114,
|
||||
8,115,97,116,67,111,108,111,114,
|
||||
27,36,98,108,101,110,100,95,115,101,116,95,99,111,108,111,114,95,115,97,116,117,114,97,116,105,111,110,
|
||||
10,98,108,101,110,100,95,104,115,108,99,
|
||||
@ -238,8 +237,8 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
3,108,117,109,
|
||||
7,109,105,110,67,111,109,112,
|
||||
7,109,97,120,67,111,109,112,
|
||||
5,109,105,100,80,116,
|
||||
5,115,97,116,80,116,
|
||||
2,109,110,
|
||||
2,109,120,
|
||||
3,115,100,97,
|
||||
3,100,115,97,
|
||||
1,108,
|
||||
@ -3497,13 +3496,13 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
17,125,7,1,191,3,
|
||||
51,255,255,223,0,
|
||||
55,193,3,
|
||||
17,149,7,
|
||||
17,42,7,
|
||||
51,255,255,129,2,3,
|
||||
55,194,3,
|
||||
17,161,7,
|
||||
17,149,7,
|
||||
51,255,255,129,2,3,
|
||||
28,195,3,
|
||||
17,170,7,2,193,3,194,3,
|
||||
17,158,7,2,193,3,194,3,
|
||||
51,255,255,129,2,
|
||||
55,196,3,
|
||||
17,45,5,
|
||||
@ -3518,7 +3517,7 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
17,26,1,
|
||||
51,255,255,253,3,3,
|
||||
28,200,3,
|
||||
17,198,7,4,196,3,197,3,198,3,199,3,
|
||||
17,186,7,4,196,3,197,3,198,3,199,3,
|
||||
51,255,255,81,3,
|
||||
55,201,3,
|
||||
17,45,5,
|
||||
@ -3527,7 +3526,7 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
17,49,5,
|
||||
51,255,255,81,3,3,
|
||||
28,203,3,
|
||||
17,209,7,2,201,3,202,3,
|
||||
17,197,7,2,201,3,202,3,
|
||||
51,255,255,81,3,
|
||||
55,204,3,
|
||||
17,45,5,
|
||||
@ -3536,7 +3535,7 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
17,49,5,
|
||||
51,255,255,81,3,3,
|
||||
28,206,3,
|
||||
17,219,7,2,204,3,205,3,
|
||||
17,207,7,2,204,3,205,3,
|
||||
51,255,255,81,3,
|
||||
55,207,3,
|
||||
17,45,5,
|
||||
@ -3545,7 +3544,7 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
17,49,5,
|
||||
51,255,255,81,3,3,
|
||||
28,209,3,
|
||||
17,236,7,2,207,3,208,3,
|
||||
17,224,7,2,207,3,208,3,
|
||||
51,255,255,81,3,
|
||||
55,210,3,
|
||||
17,45,5,
|
||||
@ -3554,13 +3553,13 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
17,49,5,
|
||||
51,255,255,81,3,3,
|
||||
28,212,3,
|
||||
17,248,7,2,210,3,211,3,
|
||||
17,236,7,2,210,3,211,3,
|
||||
51,255,255,81,3,
|
||||
55,213,3,
|
||||
17,42,7,
|
||||
51,255,255,81,3,3,
|
||||
28,214,3,
|
||||
17,9,8,1,213,3,
|
||||
17,253,7,1,213,3,
|
||||
51,255,255,81,3,
|
||||
55,215,3,
|
||||
17,42,7,
|
||||
@ -3568,14 +3567,14 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
54,216,3,2,
|
||||
51,214,3,
|
||||
28,217,3,
|
||||
17,9,8,1,215,3,
|
||||
17,253,7,1,215,3,
|
||||
51,255,255,221,1,
|
||||
51,217,3,
|
||||
55,218,3,
|
||||
17,254,1,
|
||||
51,255,255,116,2,3,
|
||||
28,219,3,
|
||||
17,18,8,1,218,3,
|
||||
17,6,8,1,218,3,
|
||||
51,255,255,186,1,
|
||||
55,220,3,
|
||||
17,35,1,
|
||||
@ -3584,7 +3583,7 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
17,164,1,
|
||||
51,255,255,186,1,3,
|
||||
28,222,3,
|
||||
17,23,8,2,220,3,221,3,
|
||||
17,11,8,2,220,3,221,3,
|
||||
51,255,255,213,0,
|
||||
55,223,3,
|
||||
17,35,1,
|
||||
@ -3595,7 +3594,7 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
54,225,3,2,
|
||||
51,222,3,
|
||||
28,226,3,
|
||||
17,23,8,2,223,3,224,3,
|
||||
17,11,8,2,223,3,224,3,
|
||||
51,255,255,223,0,
|
||||
51,226,3,134,0,
|
||||
185,3,
|
||||
@ -3881,7 +3880,7 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
2,
|
||||
52,1,1,0,
|
||||
55,227,3,
|
||||
17,39,8,
|
||||
17,27,8,
|
||||
51,255,255,59,3,2,1,0,
|
||||
0,0,2,
|
||||
56,227,3,
|
||||
@ -3985,7 +3984,7 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
2,
|
||||
52,1,1,0,
|
||||
55,228,3,
|
||||
17,45,8,
|
||||
17,33,8,
|
||||
51,255,255,81,3,2,1,0,
|
||||
0,0,3,
|
||||
56,228,3,
|
||||
@ -4062,7 +4061,7 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
2,
|
||||
52,1,1,0,
|
||||
55,229,3,
|
||||
17,45,8,
|
||||
17,33,8,
|
||||
51,255,255,81,3,2,1,0,
|
||||
0,0,3,
|
||||
56,229,3,
|
||||
@ -4154,7 +4153,7 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
52,1,0,0,0,0,1,
|
||||
44,
|
||||
53,
|
||||
45,52,8,
|
||||
45,40,8,
|
||||
1,
|
||||
57,148,3,0,3,
|
||||
1,
|
||||
@ -4169,7 +4168,7 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
52,1,0,0,0,0,1,
|
||||
44,
|
||||
53,
|
||||
45,52,8,
|
||||
45,40,8,
|
||||
1,
|
||||
57,151,3,0,3,
|
||||
1,
|
||||
@ -4202,7 +4201,7 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
2,
|
||||
52,1,1,0,
|
||||
55,232,3,
|
||||
17,96,8,
|
||||
17,84,8,
|
||||
51,255,255,223,0,2,1,0,
|
||||
0,0,2,
|
||||
56,232,3,
|
||||
@ -4373,7 +4372,7 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
2,
|
||||
52,1,1,0,
|
||||
55,233,3,
|
||||
17,96,8,
|
||||
17,84,8,
|
||||
51,255,255,223,0,2,1,0,
|
||||
0,0,2,
|
||||
56,233,3,
|
||||
@ -4533,16 +4532,16 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
2,
|
||||
52,1,4,0,
|
||||
55,234,3,
|
||||
17,102,8,
|
||||
17,90,8,
|
||||
51,255,255,223,0,2,
|
||||
55,235,3,
|
||||
17,107,8,
|
||||
17,95,8,
|
||||
51,255,255,223,0,2,
|
||||
55,236,3,
|
||||
17,112,8,
|
||||
17,100,8,
|
||||
51,255,255,223,0,2,
|
||||
55,237,3,
|
||||
17,118,8,
|
||||
17,106,8,
|
||||
51,255,255,223,0,2,4,0,
|
||||
1,0,
|
||||
0,0,
|
||||
@ -4849,16 +4848,16 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
2,
|
||||
52,1,4,0,
|
||||
55,238,3,
|
||||
17,124,8,
|
||||
17,112,8,
|
||||
51,255,255,223,0,2,
|
||||
55,239,3,
|
||||
17,45,8,
|
||||
17,33,8,
|
||||
51,255,255,129,2,2,
|
||||
55,240,3,
|
||||
17,128,8,
|
||||
17,116,8,
|
||||
51,255,255,223,0,2,
|
||||
55,241,3,
|
||||
17,136,8,
|
||||
17,124,8,
|
||||
51,255,255,223,0,2,4,0,
|
||||
0,0,
|
||||
3,0,
|
||||
@ -4988,198 +4987,57 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
2,
|
||||
52,1,2,0,
|
||||
55,242,3,
|
||||
17,144,8,
|
||||
51,255,255,129,2,2,
|
||||
17,132,8,
|
||||
51,255,255,223,0,2,
|
||||
55,243,3,
|
||||
17,150,8,
|
||||
51,255,255,129,2,2,2,0,
|
||||
17,135,8,
|
||||
51,255,255,223,0,2,2,0,
|
||||
0,0,
|
||||
1,0,5,
|
||||
1,0,3,
|
||||
56,242,3,
|
||||
51,255,255,129,2,0,
|
||||
13,
|
||||
51,255,255,129,2,1,
|
||||
25,
|
||||
51,255,255,223,0,0,0,0,0,
|
||||
56,243,3,
|
||||
51,255,255,129,2,0,
|
||||
13,
|
||||
51,255,255,129,2,1,
|
||||
25,
|
||||
51,255,255,223,0,0,0,0,0,
|
||||
32,0,
|
||||
1,
|
||||
50,
|
||||
57,193,3,0,1,0,20,
|
||||
50,
|
||||
57,193,3,0,1,1,
|
||||
2,
|
||||
52,1,0,0,0,0,1,
|
||||
32,0,
|
||||
1,
|
||||
50,
|
||||
57,193,3,0,1,1,20,
|
||||
50,
|
||||
57,193,3,0,1,2,
|
||||
2,
|
||||
52,1,0,0,0,0,2,
|
||||
22,
|
||||
1,
|
||||
57,193,3,2,23,
|
||||
50,
|
||||
57,193,3,0,3,0,0,0,
|
||||
22,
|
||||
1,
|
||||
50,
|
||||
57,242,3,1,1,1,15,
|
||||
1,
|
||||
50,
|
||||
57,243,3,1,1,2,15,
|
||||
25,
|
||||
51,255,255,223,0,0,0,128,63,1,
|
||||
32,0,
|
||||
1,
|
||||
50,
|
||||
57,193,3,0,1,0,20,
|
||||
50,
|
||||
57,193,3,0,1,2,
|
||||
2,
|
||||
52,1,0,0,0,0,2,
|
||||
22,
|
||||
1,
|
||||
57,193,3,1,15,
|
||||
1,
|
||||
50,
|
||||
57,193,3,0,3,0,2,1,1,
|
||||
50,
|
||||
57,193,3,0,3,0,0,0,
|
||||
22,
|
||||
1,
|
||||
50,
|
||||
57,242,3,1,1,2,15,
|
||||
1,
|
||||
50,
|
||||
57,243,3,1,1,1,15,
|
||||
25,
|
||||
51,255,255,223,0,0,0,128,63,1,
|
||||
2,
|
||||
52,1,0,0,0,0,2,
|
||||
22,
|
||||
1,
|
||||
57,193,3,1,15,
|
||||
1,
|
||||
50,
|
||||
57,193,3,0,3,2,0,1,1,
|
||||
50,
|
||||
57,193,3,0,3,2,2,2,
|
||||
22,
|
||||
1,
|
||||
50,
|
||||
57,242,3,1,1,0,15,
|
||||
1,
|
||||
50,
|
||||
57,243,3,1,1,1,15,
|
||||
25,
|
||||
51,255,255,223,0,0,0,128,63,1,1,
|
||||
32,0,
|
||||
1,
|
||||
50,
|
||||
57,193,3,0,1,0,20,
|
||||
50,
|
||||
57,193,3,0,1,2,
|
||||
2,
|
||||
52,1,0,0,0,0,2,
|
||||
22,
|
||||
1,
|
||||
57,193,3,1,15,
|
||||
1,
|
||||
50,
|
||||
57,193,3,0,3,1,0,2,1,
|
||||
50,
|
||||
57,193,3,0,3,1,1,1,
|
||||
22,
|
||||
1,
|
||||
50,
|
||||
57,242,3,1,1,0,15,
|
||||
1,
|
||||
50,
|
||||
57,243,3,1,1,2,15,
|
||||
25,
|
||||
51,255,255,223,0,0,0,128,63,1,
|
||||
32,0,
|
||||
1,
|
||||
50,
|
||||
57,193,3,0,1,1,20,
|
||||
50,
|
||||
57,193,3,0,1,2,
|
||||
2,
|
||||
52,1,0,0,0,0,2,
|
||||
22,
|
||||
1,
|
||||
57,193,3,1,15,
|
||||
1,
|
||||
50,
|
||||
57,193,3,0,3,1,2,0,1,
|
||||
50,
|
||||
57,193,3,0,3,1,1,1,
|
||||
22,
|
||||
1,
|
||||
50,
|
||||
57,242,3,1,1,2,15,
|
||||
1,
|
||||
50,
|
||||
57,243,3,1,1,0,15,
|
||||
25,
|
||||
51,255,255,223,0,0,0,128,63,1,
|
||||
2,
|
||||
52,1,0,0,0,0,2,
|
||||
22,
|
||||
1,
|
||||
57,193,3,1,15,
|
||||
1,
|
||||
50,
|
||||
57,193,3,0,3,2,1,0,1,
|
||||
50,
|
||||
57,193,3,0,3,2,2,2,
|
||||
22,
|
||||
1,
|
||||
50,
|
||||
57,242,3,1,1,1,15,
|
||||
1,
|
||||
50,
|
||||
57,243,3,1,1,0,15,
|
||||
25,
|
||||
51,255,255,223,0,0,0,128,63,1,
|
||||
32,0,
|
||||
1,
|
||||
50,
|
||||
57,193,3,0,1,2,19,
|
||||
25,
|
||||
51,255,255,223,0,0,0,0,0,
|
||||
2,
|
||||
52,1,0,0,0,0,2,
|
||||
22,
|
||||
1,
|
||||
57,242,3,2,24,
|
||||
51,255,255,223,0,0,
|
||||
27,
|
||||
51,255,255,223,0,150,3,2,
|
||||
51,255,255,223,0,194,0,2,
|
||||
27,
|
||||
51,255,255,223,0,194,0,2,
|
||||
50,
|
||||
57,193,3,0,1,0,
|
||||
50,
|
||||
57,193,3,0,1,1,
|
||||
50,
|
||||
57,193,3,0,1,2,
|
||||
22,
|
||||
56,243,3,
|
||||
51,255,255,223,0,0,
|
||||
27,
|
||||
51,255,255,223,0,217,0,2,
|
||||
27,
|
||||
51,255,255,223,0,217,0,2,
|
||||
50,
|
||||
57,193,3,0,1,0,
|
||||
50,
|
||||
57,193,3,0,1,1,
|
||||
50,
|
||||
57,193,3,0,1,2,
|
||||
44,
|
||||
53,
|
||||
1,
|
||||
57,193,3,1,15,
|
||||
57,243,3,0,19,
|
||||
57,242,3,0,
|
||||
1,
|
||||
1,
|
||||
57,242,3,0,0,
|
||||
57,243,3,0,2,
|
||||
1,
|
||||
57,193,3,0,1,
|
||||
57,242,3,0,2,
|
||||
27,
|
||||
51,255,255,223,0,192,3,1,
|
||||
57,194,3,0,1,
|
||||
58,
|
||||
44,
|
||||
57,193,3,0,1,
|
||||
57,194,3,0,3,
|
||||
1,
|
||||
57,243,3,0,1,
|
||||
57,242,3,0,
|
||||
13,
|
||||
51,255,255,129,2,1,
|
||||
25,
|
||||
51,255,255,223,0,0,0,0,0,1,
|
||||
29,200,3,
|
||||
2,
|
||||
52,1,5,0,
|
||||
@ -5187,13 +5045,13 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
17,83,7,
|
||||
51,255,255,223,0,2,
|
||||
55,245,3,
|
||||
17,156,8,
|
||||
17,138,8,
|
||||
51,255,255,129,2,2,
|
||||
55,246,3,
|
||||
17,160,8,
|
||||
17,142,8,
|
||||
51,255,255,129,2,2,
|
||||
55,247,3,
|
||||
17,164,8,
|
||||
17,146,8,
|
||||
51,255,255,129,2,2,
|
||||
55,248,3,
|
||||
17,217,2,
|
||||
@ -5365,11 +5223,11 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
52,1,0,0,0,0,1,
|
||||
44,
|
||||
53,
|
||||
45,166,8,
|
||||
45,148,8,
|
||||
27,
|
||||
51,255,255,213,0,50,2,1,
|
||||
8,
|
||||
51,255,255,192,8,2,
|
||||
51,255,255,174,8,2,
|
||||
57,220,3,0,
|
||||
57,221,3,0,
|
||||
1,
|
||||
@ -5388,11 +5246,11 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {9,0,207,8,
|
||||
52,1,0,0,0,0,1,
|
||||
44,
|
||||
53,
|
||||
45,166,8,
|
||||
45,148,8,
|
||||
27,
|
||||
51,255,255,223,0,53,2,1,
|
||||
8,
|
||||
51,255,255,201,8,2,
|
||||
51,255,255,183,8,2,
|
||||
57,223,3,0,
|
||||
57,224,3,0,
|
||||
1,
|
||||
|
@ -460,36 +460,12 @@ half $blend_color_saturation(half3 color) {
|
||||
return max(max(color.r, color.g), color.b) - min(min(color.r, color.g), color.b);
|
||||
}
|
||||
|
||||
half3 $blend_set_color_saturation(half3 hueLumColor, half3 satColor) {
|
||||
// Sort the RGB components of hueLumColor so that R <= G <= B.
|
||||
half3 midPt = half3(0);
|
||||
half3 satPt = half3(0);
|
||||
if (hueLumColor.r <= hueLumColor.g) {
|
||||
if (hueLumColor.g <= hueLumColor.b) {
|
||||
hueLumColor -= hueLumColor.rrr;
|
||||
midPt.y = satPt.z = 1;
|
||||
} else if (hueLumColor.r <= hueLumColor.b) {
|
||||
hueLumColor = hueLumColor.rbg - hueLumColor.rrr;
|
||||
midPt.z = satPt.y = 1;
|
||||
} else {
|
||||
hueLumColor = hueLumColor.brg - hueLumColor.bbb;
|
||||
midPt.x = satPt.y = 1;
|
||||
}
|
||||
} else if (hueLumColor.r <= hueLumColor.b) {
|
||||
hueLumColor = hueLumColor.grb - hueLumColor.ggg;
|
||||
midPt.x = satPt.z = 1;
|
||||
} else if (hueLumColor.g <= hueLumColor.b) {
|
||||
hueLumColor = hueLumColor.gbr - hueLumColor.ggg;
|
||||
midPt.z = satPt.x = 1;
|
||||
} else {
|
||||
hueLumColor = hueLumColor.bgr - hueLumColor.bbb;
|
||||
midPt.y = satPt.x = 1;
|
||||
}
|
||||
if (hueLumColor.b > 0) {
|
||||
midPt *= $guarded_divide(hueLumColor.g, hueLumColor.b);
|
||||
hueLumColor = (midPt + satPt) * $blend_color_saturation(satColor);
|
||||
}
|
||||
return hueLumColor;
|
||||
half3 $blend_set_color_saturation(half3 color, half3 satColor) {
|
||||
half mn = min(min(color.r, color.g), color.b);
|
||||
half mx = max(max(color.r, color.g), color.b);
|
||||
|
||||
return (mx > mn) ? ((color - mn) * $blend_color_saturation(satColor)) / (mx - mn)
|
||||
: half3(0);
|
||||
}
|
||||
|
||||
half4 blend_hslc(half4 src, half4 dst, bool flip, bool saturate) {
|
||||
|
@ -8,19 +8,19 @@ OpName %sk_Clockwise "sk_Clockwise"
|
||||
OpName %_UniformBuffer "_UniformBuffer"
|
||||
OpMemberName %_UniformBuffer 0 "src"
|
||||
OpMemberName %_UniformBuffer 1 "dst"
|
||||
OpName %blend_color_saturation_Qhh3 "blend_color_saturation_Qhh3"
|
||||
OpName %blend_hslc_h4h4h4bb "blend_hslc_h4h4h4bb"
|
||||
OpName %alpha "alpha"
|
||||
OpName %sda "sda"
|
||||
OpName %dsa "dsa"
|
||||
OpName %l "l"
|
||||
OpName %r "r"
|
||||
OpName %_2_hueLumColor "_2_hueLumColor"
|
||||
OpName %_3_midPt "_3_midPt"
|
||||
OpName %_4_satPt "_4_satPt"
|
||||
OpName %_5_lum "_5_lum"
|
||||
OpName %_6_result "_6_result"
|
||||
OpName %_7_minComp "_7_minComp"
|
||||
OpName %_8_maxComp "_8_maxComp"
|
||||
OpName %_2_mn "_2_mn"
|
||||
OpName %_3_mx "_3_mx"
|
||||
OpName %_4_lum "_4_lum"
|
||||
OpName %_5_result "_5_result"
|
||||
OpName %_6_minComp "_6_minComp"
|
||||
OpName %_7_maxComp "_7_maxComp"
|
||||
OpName %main "main"
|
||||
OpDecorate %sk_FragColor RelaxedPrecision
|
||||
OpDecorate %sk_FragColor Location 0
|
||||
@ -31,124 +31,129 @@ OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
|
||||
OpMemberDecorate %_UniformBuffer 1 Offset 16
|
||||
OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
|
||||
OpDecorate %_UniformBuffer Block
|
||||
OpDecorate %11 Binding 0
|
||||
OpDecorate %11 DescriptorSet 0
|
||||
OpDecorate %alpha RelaxedPrecision
|
||||
OpDecorate %12 Binding 0
|
||||
OpDecorate %12 DescriptorSet 0
|
||||
OpDecorate %22 RelaxedPrecision
|
||||
OpDecorate %23 RelaxedPrecision
|
||||
OpDecorate %24 RelaxedPrecision
|
||||
OpDecorate %25 RelaxedPrecision
|
||||
OpDecorate %26 RelaxedPrecision
|
||||
OpDecorate %27 RelaxedPrecision
|
||||
OpDecorate %28 RelaxedPrecision
|
||||
OpDecorate %sda RelaxedPrecision
|
||||
OpDecorate %30 RelaxedPrecision
|
||||
OpDecorate %31 RelaxedPrecision
|
||||
OpDecorate %32 RelaxedPrecision
|
||||
OpDecorate %33 RelaxedPrecision
|
||||
OpDecorate %34 RelaxedPrecision
|
||||
OpDecorate %35 RelaxedPrecision
|
||||
OpDecorate %36 RelaxedPrecision
|
||||
OpDecorate %dsa RelaxedPrecision
|
||||
OpDecorate %38 RelaxedPrecision
|
||||
OpDecorate %39 RelaxedPrecision
|
||||
OpDecorate %40 RelaxedPrecision
|
||||
OpDecorate %41 RelaxedPrecision
|
||||
OpDecorate %42 RelaxedPrecision
|
||||
OpDecorate %l RelaxedPrecision
|
||||
OpDecorate %44 RelaxedPrecision
|
||||
OpDecorate %alpha RelaxedPrecision
|
||||
OpDecorate %47 RelaxedPrecision
|
||||
OpDecorate %48 RelaxedPrecision
|
||||
OpDecorate %49 RelaxedPrecision
|
||||
OpDecorate %50 RelaxedPrecision
|
||||
OpDecorate %51 RelaxedPrecision
|
||||
OpDecorate %r RelaxedPrecision
|
||||
OpDecorate %sda RelaxedPrecision
|
||||
OpDecorate %53 RelaxedPrecision
|
||||
OpDecorate %58 RelaxedPrecision
|
||||
OpDecorate %54 RelaxedPrecision
|
||||
OpDecorate %55 RelaxedPrecision
|
||||
OpDecorate %56 RelaxedPrecision
|
||||
OpDecorate %57 RelaxedPrecision
|
||||
OpDecorate %dsa RelaxedPrecision
|
||||
OpDecorate %59 RelaxedPrecision
|
||||
OpDecorate %60 RelaxedPrecision
|
||||
OpDecorate %61 RelaxedPrecision
|
||||
OpDecorate %_2_hueLumColor RelaxedPrecision
|
||||
OpDecorate %62 RelaxedPrecision
|
||||
OpDecorate %63 RelaxedPrecision
|
||||
OpDecorate %l RelaxedPrecision
|
||||
OpDecorate %65 RelaxedPrecision
|
||||
OpDecorate %_3_midPt RelaxedPrecision
|
||||
OpDecorate %68 RelaxedPrecision
|
||||
OpDecorate %_4_satPt RelaxedPrecision
|
||||
OpDecorate %70 RelaxedPrecision
|
||||
OpDecorate %71 RelaxedPrecision
|
||||
OpDecorate %72 RelaxedPrecision
|
||||
OpDecorate %73 RelaxedPrecision
|
||||
OpDecorate %78 RelaxedPrecision
|
||||
OpDecorate %r RelaxedPrecision
|
||||
OpDecorate %74 RelaxedPrecision
|
||||
OpDecorate %79 RelaxedPrecision
|
||||
OpDecorate %80 RelaxedPrecision
|
||||
OpDecorate %81 RelaxedPrecision
|
||||
OpDecorate %86 RelaxedPrecision
|
||||
OpDecorate %87 RelaxedPrecision
|
||||
OpDecorate %82 RelaxedPrecision
|
||||
OpDecorate %_2_mn RelaxedPrecision
|
||||
OpDecorate %88 RelaxedPrecision
|
||||
OpDecorate %89 RelaxedPrecision
|
||||
OpDecorate %96 RelaxedPrecision
|
||||
OpDecorate %90 RelaxedPrecision
|
||||
OpDecorate %91 RelaxedPrecision
|
||||
OpDecorate %92 RelaxedPrecision
|
||||
OpDecorate %93 RelaxedPrecision
|
||||
OpDecorate %_3_mx RelaxedPrecision
|
||||
OpDecorate %97 RelaxedPrecision
|
||||
OpDecorate %98 RelaxedPrecision
|
||||
OpDecorate %99 RelaxedPrecision
|
||||
OpDecorate %100 RelaxedPrecision
|
||||
OpDecorate %101 RelaxedPrecision
|
||||
OpDecorate %102 RelaxedPrecision
|
||||
OpDecorate %103 RelaxedPrecision
|
||||
OpDecorate %104 RelaxedPrecision
|
||||
OpDecorate %105 RelaxedPrecision
|
||||
OpDecorate %106 RelaxedPrecision
|
||||
OpDecorate %107 RelaxedPrecision
|
||||
OpDecorate %108 RelaxedPrecision
|
||||
OpDecorate %110 RelaxedPrecision
|
||||
OpDecorate %111 RelaxedPrecision
|
||||
OpDecorate %112 RelaxedPrecision
|
||||
OpDecorate %113 RelaxedPrecision
|
||||
OpDecorate %114 RelaxedPrecision
|
||||
OpDecorate %115 RelaxedPrecision
|
||||
OpDecorate %117 RelaxedPrecision
|
||||
OpDecorate %118 RelaxedPrecision
|
||||
OpDecorate %119 RelaxedPrecision
|
||||
OpDecorate %120 RelaxedPrecision
|
||||
OpDecorate %121 RelaxedPrecision
|
||||
OpDecorate %122 RelaxedPrecision
|
||||
OpDecorate %123 RelaxedPrecision
|
||||
OpDecorate %125 RelaxedPrecision
|
||||
OpDecorate %126 RelaxedPrecision
|
||||
OpDecorate %127 RelaxedPrecision
|
||||
OpDecorate %128 RelaxedPrecision
|
||||
OpDecorate %_4_lum RelaxedPrecision
|
||||
OpDecorate %129 RelaxedPrecision
|
||||
OpDecorate %130 RelaxedPrecision
|
||||
OpDecorate %131 RelaxedPrecision
|
||||
OpDecorate %133 RelaxedPrecision
|
||||
OpDecorate %134 RelaxedPrecision
|
||||
OpDecorate %135 RelaxedPrecision
|
||||
OpDecorate %_5_result RelaxedPrecision
|
||||
OpDecorate %136 RelaxedPrecision
|
||||
OpDecorate %137 RelaxedPrecision
|
||||
OpDecorate %138 RelaxedPrecision
|
||||
OpDecorate %139 RelaxedPrecision
|
||||
OpDecorate %140 RelaxedPrecision
|
||||
OpDecorate %141 RelaxedPrecision
|
||||
OpDecorate %142 RelaxedPrecision
|
||||
OpDecorate %143 RelaxedPrecision
|
||||
OpDecorate %144 RelaxedPrecision
|
||||
OpDecorate %145 RelaxedPrecision
|
||||
OpDecorate %_6_minComp RelaxedPrecision
|
||||
OpDecorate %146 RelaxedPrecision
|
||||
OpDecorate %147 RelaxedPrecision
|
||||
OpDecorate %148 RelaxedPrecision
|
||||
OpDecorate %149 RelaxedPrecision
|
||||
OpDecorate %150 RelaxedPrecision
|
||||
OpDecorate %151 RelaxedPrecision
|
||||
OpDecorate %152 RelaxedPrecision
|
||||
OpDecorate %153 RelaxedPrecision
|
||||
OpDecorate %_7_maxComp RelaxedPrecision
|
||||
OpDecorate %155 RelaxedPrecision
|
||||
OpDecorate %156 RelaxedPrecision
|
||||
OpDecorate %157 RelaxedPrecision
|
||||
OpDecorate %161 RelaxedPrecision
|
||||
OpDecorate %158 RelaxedPrecision
|
||||
OpDecorate %159 RelaxedPrecision
|
||||
OpDecorate %160 RelaxedPrecision
|
||||
OpDecorate %162 RelaxedPrecision
|
||||
OpDecorate %163 RelaxedPrecision
|
||||
OpDecorate %164 RelaxedPrecision
|
||||
OpDecorate %165 RelaxedPrecision
|
||||
OpDecorate %166 RelaxedPrecision
|
||||
OpDecorate %167 RelaxedPrecision
|
||||
OpDecorate %168 RelaxedPrecision
|
||||
OpDecorate %169 RelaxedPrecision
|
||||
OpDecorate %170 RelaxedPrecision
|
||||
OpDecorate %172 RelaxedPrecision
|
||||
OpDecorate %173 RelaxedPrecision
|
||||
OpDecorate %174 RelaxedPrecision
|
||||
OpDecorate %175 RelaxedPrecision
|
||||
OpDecorate %176 RelaxedPrecision
|
||||
OpDecorate %177 RelaxedPrecision
|
||||
OpDecorate %178 RelaxedPrecision
|
||||
OpDecorate %179 RelaxedPrecision
|
||||
OpDecorate %180 RelaxedPrecision
|
||||
OpDecorate %181 RelaxedPrecision
|
||||
OpDecorate %182 RelaxedPrecision
|
||||
OpDecorate %183 RelaxedPrecision
|
||||
OpDecorate %184 RelaxedPrecision
|
||||
OpDecorate %185 RelaxedPrecision
|
||||
OpDecorate %186 RelaxedPrecision
|
||||
OpDecorate %187 RelaxedPrecision
|
||||
OpDecorate %188 RelaxedPrecision
|
||||
OpDecorate %189 RelaxedPrecision
|
||||
OpDecorate %190 RelaxedPrecision
|
||||
OpDecorate %_5_lum RelaxedPrecision
|
||||
OpDecorate %192 RelaxedPrecision
|
||||
OpDecorate %191 RelaxedPrecision
|
||||
OpDecorate %196 RelaxedPrecision
|
||||
OpDecorate %197 RelaxedPrecision
|
||||
OpDecorate %_6_result RelaxedPrecision
|
||||
OpDecorate %198 RelaxedPrecision
|
||||
OpDecorate %199 RelaxedPrecision
|
||||
OpDecorate %200 RelaxedPrecision
|
||||
OpDecorate %201 RelaxedPrecision
|
||||
@ -156,80 +161,36 @@ OpDecorate %202 RelaxedPrecision
|
||||
OpDecorate %203 RelaxedPrecision
|
||||
OpDecorate %204 RelaxedPrecision
|
||||
OpDecorate %205 RelaxedPrecision
|
||||
OpDecorate %_7_minComp RelaxedPrecision
|
||||
OpDecorate %206 RelaxedPrecision
|
||||
OpDecorate %207 RelaxedPrecision
|
||||
OpDecorate %208 RelaxedPrecision
|
||||
OpDecorate %209 RelaxedPrecision
|
||||
OpDecorate %210 RelaxedPrecision
|
||||
OpDecorate %211 RelaxedPrecision
|
||||
OpDecorate %212 RelaxedPrecision
|
||||
OpDecorate %213 RelaxedPrecision
|
||||
OpDecorate %214 RelaxedPrecision
|
||||
OpDecorate %_8_maxComp RelaxedPrecision
|
||||
OpDecorate %215 RelaxedPrecision
|
||||
OpDecorate %216 RelaxedPrecision
|
||||
OpDecorate %217 RelaxedPrecision
|
||||
OpDecorate %218 RelaxedPrecision
|
||||
OpDecorate %219 RelaxedPrecision
|
||||
OpDecorate %220 RelaxedPrecision
|
||||
OpDecorate %221 RelaxedPrecision
|
||||
OpDecorate %222 RelaxedPrecision
|
||||
OpDecorate %223 RelaxedPrecision
|
||||
OpDecorate %224 RelaxedPrecision
|
||||
OpDecorate %225 RelaxedPrecision
|
||||
OpDecorate %226 RelaxedPrecision
|
||||
OpDecorate %227 RelaxedPrecision
|
||||
OpDecorate %228 RelaxedPrecision
|
||||
OpDecorate %229 RelaxedPrecision
|
||||
OpDecorate %230 RelaxedPrecision
|
||||
OpDecorate %235 RelaxedPrecision
|
||||
OpDecorate %236 RelaxedPrecision
|
||||
OpDecorate %237 RelaxedPrecision
|
||||
OpDecorate %238 RelaxedPrecision
|
||||
OpDecorate %239 RelaxedPrecision
|
||||
OpDecorate %240 RelaxedPrecision
|
||||
OpDecorate %231 RelaxedPrecision
|
||||
OpDecorate %232 RelaxedPrecision
|
||||
OpDecorate %233 RelaxedPrecision
|
||||
OpDecorate %241 RelaxedPrecision
|
||||
OpDecorate %242 RelaxedPrecision
|
||||
OpDecorate %243 RelaxedPrecision
|
||||
OpDecorate %244 RelaxedPrecision
|
||||
OpDecorate %245 RelaxedPrecision
|
||||
OpDecorate %246 RelaxedPrecision
|
||||
OpDecorate %247 RelaxedPrecision
|
||||
OpDecorate %248 RelaxedPrecision
|
||||
OpDecorate %249 RelaxedPrecision
|
||||
OpDecorate %253 RelaxedPrecision
|
||||
OpDecorate %254 RelaxedPrecision
|
||||
OpDecorate %259 RelaxedPrecision
|
||||
OpDecorate %260 RelaxedPrecision
|
||||
OpDecorate %261 RelaxedPrecision
|
||||
OpDecorate %262 RelaxedPrecision
|
||||
OpDecorate %263 RelaxedPrecision
|
||||
OpDecorate %264 RelaxedPrecision
|
||||
OpDecorate %265 RelaxedPrecision
|
||||
OpDecorate %266 RelaxedPrecision
|
||||
OpDecorate %267 RelaxedPrecision
|
||||
OpDecorate %268 RelaxedPrecision
|
||||
OpDecorate %269 RelaxedPrecision
|
||||
OpDecorate %270 RelaxedPrecision
|
||||
OpDecorate %271 RelaxedPrecision
|
||||
OpDecorate %272 RelaxedPrecision
|
||||
OpDecorate %273 RelaxedPrecision
|
||||
OpDecorate %274 RelaxedPrecision
|
||||
OpDecorate %275 RelaxedPrecision
|
||||
OpDecorate %276 RelaxedPrecision
|
||||
OpDecorate %277 RelaxedPrecision
|
||||
OpDecorate %278 RelaxedPrecision
|
||||
OpDecorate %279 RelaxedPrecision
|
||||
OpDecorate %280 RelaxedPrecision
|
||||
OpDecorate %281 RelaxedPrecision
|
||||
OpDecorate %282 RelaxedPrecision
|
||||
OpDecorate %283 RelaxedPrecision
|
||||
OpDecorate %284 RelaxedPrecision
|
||||
OpDecorate %285 RelaxedPrecision
|
||||
OpDecorate %286 RelaxedPrecision
|
||||
OpDecorate %287 RelaxedPrecision
|
||||
OpDecorate %288 RelaxedPrecision
|
||||
OpDecorate %289 RelaxedPrecision
|
||||
OpDecorate %290 RelaxedPrecision
|
||||
OpDecorate %291 RelaxedPrecision
|
||||
OpDecorate %292 RelaxedPrecision
|
||||
OpDecorate %293 RelaxedPrecision
|
||||
OpDecorate %294 RelaxedPrecision
|
||||
OpDecorate %295 RelaxedPrecision
|
||||
OpDecorate %296 RelaxedPrecision
|
||||
OpDecorate %302 RelaxedPrecision
|
||||
OpDecorate %305 RelaxedPrecision
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
@ -239,397 +200,302 @@ OpDecorate %305 RelaxedPrecision
|
||||
%sk_Clockwise = OpVariable %_ptr_Input_bool Input
|
||||
%_UniformBuffer = OpTypeStruct %v4float %v4float
|
||||
%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
|
||||
%11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
|
||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||
%14 = OpTypeFunction %v4float %_ptr_Function_v4float %_ptr_Function_v4float %_ptr_Function_bool %_ptr_Function_bool
|
||||
%_ptr_Function_float = OpTypePointer Function %float
|
||||
%12 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
|
||||
%v3float = OpTypeVector %float 3
|
||||
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
||||
%float_0 = OpConstant %float 0
|
||||
%68 = OpConstantComposite %v3float %float_0 %float_0 %float_0
|
||||
%16 = OpTypeFunction %float %_ptr_Function_v3float
|
||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||
%37 = OpTypeFunction %v4float %_ptr_Function_v4float %_ptr_Function_v4float %_ptr_Function_bool %_ptr_Function_bool
|
||||
%_ptr_Function_float = OpTypePointer Function %float
|
||||
%float_1 = OpConstant %float 1
|
||||
%int = OpTypeInt 32 1
|
||||
%int_2 = OpConstant %int 2
|
||||
%int_1 = OpConstant %int 1
|
||||
%int_0 = OpConstant %int 0
|
||||
%float_0 = OpConstant %float 0
|
||||
%125 = OpConstantComposite %v3float %float_0 %float_0 %float_0
|
||||
%float_0_300000012 = OpConstant %float 0.300000012
|
||||
%float_0_589999974 = OpConstant %float 0.589999974
|
||||
%float_0_109999999 = OpConstant %float 0.109999999
|
||||
%196 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
|
||||
%133 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
|
||||
%false = OpConstantFalse %bool
|
||||
%void = OpTypeVoid
|
||||
%298 = OpTypeFunction %void
|
||||
%235 = OpTypeFunction %void
|
||||
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
||||
%blend_hslc_h4h4h4bb = OpFunction %v4float None %14
|
||||
%17 = OpFunctionParameter %_ptr_Function_v4float
|
||||
%18 = OpFunctionParameter %_ptr_Function_v4float
|
||||
%19 = OpFunctionParameter %_ptr_Function_bool
|
||||
%20 = OpFunctionParameter %_ptr_Function_bool
|
||||
%21 = OpLabel
|
||||
%int = OpTypeInt 32 1
|
||||
%int_0 = OpConstant %int 0
|
||||
%int_1 = OpConstant %int 1
|
||||
%blend_color_saturation_Qhh3 = OpFunction %float None %16
|
||||
%18 = OpFunctionParameter %_ptr_Function_v3float
|
||||
%19 = OpLabel
|
||||
%22 = OpLoad %v3float %18
|
||||
%23 = OpCompositeExtract %float %22 0
|
||||
%24 = OpLoad %v3float %18
|
||||
%25 = OpCompositeExtract %float %24 1
|
||||
%21 = OpExtInst %float %1 FMax %23 %25
|
||||
%26 = OpLoad %v3float %18
|
||||
%27 = OpCompositeExtract %float %26 2
|
||||
%20 = OpExtInst %float %1 FMax %21 %27
|
||||
%30 = OpLoad %v3float %18
|
||||
%31 = OpCompositeExtract %float %30 0
|
||||
%32 = OpLoad %v3float %18
|
||||
%33 = OpCompositeExtract %float %32 1
|
||||
%29 = OpExtInst %float %1 FMin %31 %33
|
||||
%34 = OpLoad %v3float %18
|
||||
%35 = OpCompositeExtract %float %34 2
|
||||
%28 = OpExtInst %float %1 FMin %29 %35
|
||||
%36 = OpFSub %float %20 %28
|
||||
OpReturnValue %36
|
||||
OpFunctionEnd
|
||||
%blend_hslc_h4h4h4bb = OpFunction %v4float None %37
|
||||
%40 = OpFunctionParameter %_ptr_Function_v4float
|
||||
%41 = OpFunctionParameter %_ptr_Function_v4float
|
||||
%42 = OpFunctionParameter %_ptr_Function_bool
|
||||
%43 = OpFunctionParameter %_ptr_Function_bool
|
||||
%44 = OpLabel
|
||||
%alpha = OpVariable %_ptr_Function_float Function
|
||||
%sda = OpVariable %_ptr_Function_v3float Function
|
||||
%dsa = OpVariable %_ptr_Function_v3float Function
|
||||
%l = OpVariable %_ptr_Function_v3float Function
|
||||
%45 = OpVariable %_ptr_Function_v3float Function
|
||||
%66 = OpVariable %_ptr_Function_v3float Function
|
||||
%r = OpVariable %_ptr_Function_v3float Function
|
||||
%54 = OpVariable %_ptr_Function_v3float Function
|
||||
%_2_hueLumColor = OpVariable %_ptr_Function_v3float Function
|
||||
%_3_midPt = OpVariable %_ptr_Function_v3float Function
|
||||
%_4_satPt = OpVariable %_ptr_Function_v3float Function
|
||||
%_5_lum = OpVariable %_ptr_Function_float Function
|
||||
%_6_result = OpVariable %_ptr_Function_v3float Function
|
||||
%_7_minComp = OpVariable %_ptr_Function_float Function
|
||||
%_8_maxComp = OpVariable %_ptr_Function_float Function
|
||||
%24 = OpLoad %v4float %18
|
||||
%25 = OpCompositeExtract %float %24 3
|
||||
%26 = OpLoad %v4float %17
|
||||
%27 = OpCompositeExtract %float %26 3
|
||||
%28 = OpFMul %float %25 %27
|
||||
OpStore %alpha %28
|
||||
%32 = OpLoad %v4float %17
|
||||
%33 = OpVectorShuffle %v3float %32 %32 0 1 2
|
||||
%34 = OpLoad %v4float %18
|
||||
%35 = OpCompositeExtract %float %34 3
|
||||
%36 = OpVectorTimesScalar %v3float %33 %35
|
||||
OpStore %sda %36
|
||||
%38 = OpLoad %v4float %18
|
||||
%39 = OpVectorShuffle %v3float %38 %38 0 1 2
|
||||
%40 = OpLoad %v4float %17
|
||||
%41 = OpCompositeExtract %float %40 3
|
||||
%42 = OpVectorTimesScalar %v3float %39 %41
|
||||
OpStore %dsa %42
|
||||
%44 = OpLoad %bool %19
|
||||
OpSelectionMerge %48 None
|
||||
OpBranchConditional %44 %46 %47
|
||||
%46 = OpLabel
|
||||
%49 = OpLoad %v3float %dsa
|
||||
OpStore %45 %49
|
||||
OpBranch %48
|
||||
%47 = OpLabel
|
||||
%50 = OpLoad %v3float %sda
|
||||
OpStore %45 %50
|
||||
OpBranch %48
|
||||
%48 = OpLabel
|
||||
%51 = OpLoad %v3float %45
|
||||
OpStore %l %51
|
||||
%53 = OpLoad %bool %19
|
||||
OpSelectionMerge %57 None
|
||||
OpBranchConditional %53 %55 %56
|
||||
%55 = OpLabel
|
||||
%58 = OpLoad %v3float %sda
|
||||
OpStore %54 %58
|
||||
OpBranch %57
|
||||
%56 = OpLabel
|
||||
%59 = OpLoad %v3float %dsa
|
||||
OpStore %54 %59
|
||||
OpBranch %57
|
||||
%57 = OpLabel
|
||||
%60 = OpLoad %v3float %54
|
||||
OpStore %r %60
|
||||
%61 = OpLoad %bool %20
|
||||
OpSelectionMerge %63 None
|
||||
OpBranchConditional %61 %62 %63
|
||||
%62 = OpLabel
|
||||
%65 = OpLoad %v3float %l
|
||||
OpStore %_2_hueLumColor %65
|
||||
OpStore %_3_midPt %68
|
||||
OpStore %_4_satPt %68
|
||||
%70 = OpLoad %v3float %_2_hueLumColor
|
||||
%71 = OpCompositeExtract %float %70 0
|
||||
%72 = OpLoad %v3float %_2_hueLumColor
|
||||
%73 = OpCompositeExtract %float %72 1
|
||||
%74 = OpFOrdLessThanEqual %bool %71 %73
|
||||
OpSelectionMerge %77 None
|
||||
OpBranchConditional %74 %75 %76
|
||||
%75 = OpLabel
|
||||
%78 = OpLoad %v3float %_2_hueLumColor
|
||||
%79 = OpCompositeExtract %float %78 1
|
||||
%80 = OpLoad %v3float %_2_hueLumColor
|
||||
%81 = OpCompositeExtract %float %80 2
|
||||
%82 = OpFOrdLessThanEqual %bool %79 %81
|
||||
OpSelectionMerge %85 None
|
||||
%75 = OpVariable %_ptr_Function_v3float Function
|
||||
%_2_mn = OpVariable %_ptr_Function_float Function
|
||||
%_3_mx = OpVariable %_ptr_Function_float Function
|
||||
%106 = OpVariable %_ptr_Function_v3float Function
|
||||
%115 = OpVariable %_ptr_Function_v3float Function
|
||||
%_4_lum = OpVariable %_ptr_Function_float Function
|
||||
%_5_result = OpVariable %_ptr_Function_v3float Function
|
||||
%_6_minComp = OpVariable %_ptr_Function_float Function
|
||||
%_7_maxComp = OpVariable %_ptr_Function_float Function
|
||||
%47 = OpLoad %v4float %41
|
||||
%48 = OpCompositeExtract %float %47 3
|
||||
%49 = OpLoad %v4float %40
|
||||
%50 = OpCompositeExtract %float %49 3
|
||||
%51 = OpFMul %float %48 %50
|
||||
OpStore %alpha %51
|
||||
%53 = OpLoad %v4float %40
|
||||
%54 = OpVectorShuffle %v3float %53 %53 0 1 2
|
||||
%55 = OpLoad %v4float %41
|
||||
%56 = OpCompositeExtract %float %55 3
|
||||
%57 = OpVectorTimesScalar %v3float %54 %56
|
||||
OpStore %sda %57
|
||||
%59 = OpLoad %v4float %41
|
||||
%60 = OpVectorShuffle %v3float %59 %59 0 1 2
|
||||
%61 = OpLoad %v4float %40
|
||||
%62 = OpCompositeExtract %float %61 3
|
||||
%63 = OpVectorTimesScalar %v3float %60 %62
|
||||
OpStore %dsa %63
|
||||
%65 = OpLoad %bool %42
|
||||
OpSelectionMerge %69 None
|
||||
OpBranchConditional %65 %67 %68
|
||||
%67 = OpLabel
|
||||
%70 = OpLoad %v3float %dsa
|
||||
OpStore %66 %70
|
||||
OpBranch %69
|
||||
%68 = OpLabel
|
||||
%71 = OpLoad %v3float %sda
|
||||
OpStore %66 %71
|
||||
OpBranch %69
|
||||
%69 = OpLabel
|
||||
%72 = OpLoad %v3float %66
|
||||
OpStore %l %72
|
||||
%74 = OpLoad %bool %42
|
||||
OpSelectionMerge %78 None
|
||||
OpBranchConditional %74 %76 %77
|
||||
%76 = OpLabel
|
||||
%79 = OpLoad %v3float %sda
|
||||
OpStore %75 %79
|
||||
OpBranch %78
|
||||
%77 = OpLabel
|
||||
%80 = OpLoad %v3float %dsa
|
||||
OpStore %75 %80
|
||||
OpBranch %78
|
||||
%78 = OpLabel
|
||||
%81 = OpLoad %v3float %75
|
||||
OpStore %r %81
|
||||
%82 = OpLoad %bool %43
|
||||
OpSelectionMerge %84 None
|
||||
OpBranchConditional %82 %83 %84
|
||||
%83 = OpLabel
|
||||
%86 = OpLoad %v3float %_2_hueLumColor
|
||||
%87 = OpLoad %v3float %_2_hueLumColor
|
||||
%88 = OpVectorShuffle %v3float %87 %87 0 0 0
|
||||
%89 = OpFSub %v3float %86 %88
|
||||
OpStore %_2_hueLumColor %89
|
||||
%91 = OpAccessChain %_ptr_Function_float %_4_satPt %int_2
|
||||
OpStore %91 %float_1
|
||||
%94 = OpAccessChain %_ptr_Function_float %_3_midPt %int_1
|
||||
OpStore %94 %float_1
|
||||
OpBranch %85
|
||||
%88 = OpLoad %v3float %l
|
||||
%89 = OpCompositeExtract %float %88 0
|
||||
%90 = OpLoad %v3float %l
|
||||
%91 = OpCompositeExtract %float %90 1
|
||||
%87 = OpExtInst %float %1 FMin %89 %91
|
||||
%92 = OpLoad %v3float %l
|
||||
%93 = OpCompositeExtract %float %92 2
|
||||
%86 = OpExtInst %float %1 FMin %87 %93
|
||||
OpStore %_2_mn %86
|
||||
%97 = OpLoad %v3float %l
|
||||
%98 = OpCompositeExtract %float %97 0
|
||||
%99 = OpLoad %v3float %l
|
||||
%100 = OpCompositeExtract %float %99 1
|
||||
%96 = OpExtInst %float %1 FMax %98 %100
|
||||
%101 = OpLoad %v3float %l
|
||||
%102 = OpCompositeExtract %float %101 2
|
||||
%95 = OpExtInst %float %1 FMax %96 %102
|
||||
OpStore %_3_mx %95
|
||||
%103 = OpLoad %float %_3_mx
|
||||
%104 = OpLoad %float %_2_mn
|
||||
%105 = OpFOrdGreaterThan %bool %103 %104
|
||||
OpSelectionMerge %109 None
|
||||
OpBranchConditional %105 %107 %108
|
||||
%107 = OpLabel
|
||||
%110 = OpLoad %v3float %l
|
||||
%111 = OpLoad %float %_2_mn
|
||||
%112 = OpCompositeConstruct %v3float %111 %111 %111
|
||||
%113 = OpFSub %v3float %110 %112
|
||||
%114 = OpLoad %v3float %r
|
||||
OpStore %115 %114
|
||||
%116 = OpFunctionCall %float %blend_color_saturation_Qhh3 %115
|
||||
%117 = OpVectorTimesScalar %v3float %113 %116
|
||||
%118 = OpLoad %float %_3_mx
|
||||
%119 = OpLoad %float %_2_mn
|
||||
%120 = OpFSub %float %118 %119
|
||||
%122 = OpFDiv %float %float_1 %120
|
||||
%123 = OpVectorTimesScalar %v3float %117 %122
|
||||
OpStore %106 %123
|
||||
OpBranch %109
|
||||
%108 = OpLabel
|
||||
OpStore %106 %125
|
||||
OpBranch %109
|
||||
%109 = OpLabel
|
||||
%126 = OpLoad %v3float %106
|
||||
OpStore %l %126
|
||||
%127 = OpLoad %v3float %dsa
|
||||
OpStore %r %127
|
||||
OpBranch %84
|
||||
%84 = OpLabel
|
||||
%96 = OpLoad %v3float %_2_hueLumColor
|
||||
%97 = OpCompositeExtract %float %96 0
|
||||
%98 = OpLoad %v3float %_2_hueLumColor
|
||||
%99 = OpCompositeExtract %float %98 2
|
||||
%100 = OpFOrdLessThanEqual %bool %97 %99
|
||||
OpSelectionMerge %103 None
|
||||
OpBranchConditional %100 %101 %102
|
||||
%101 = OpLabel
|
||||
%104 = OpLoad %v3float %_2_hueLumColor
|
||||
%105 = OpVectorShuffle %v3float %104 %104 0 2 1
|
||||
%106 = OpLoad %v3float %_2_hueLumColor
|
||||
%107 = OpVectorShuffle %v3float %106 %106 0 0 0
|
||||
%108 = OpFSub %v3float %105 %107
|
||||
OpStore %_2_hueLumColor %108
|
||||
%109 = OpAccessChain %_ptr_Function_float %_4_satPt %int_1
|
||||
OpStore %109 %float_1
|
||||
%110 = OpAccessChain %_ptr_Function_float %_3_midPt %int_2
|
||||
OpStore %110 %float_1
|
||||
OpBranch %103
|
||||
%102 = OpLabel
|
||||
%111 = OpLoad %v3float %_2_hueLumColor
|
||||
%112 = OpVectorShuffle %v3float %111 %111 2 0 1
|
||||
%113 = OpLoad %v3float %_2_hueLumColor
|
||||
%114 = OpVectorShuffle %v3float %113 %113 2 2 2
|
||||
%115 = OpFSub %v3float %112 %114
|
||||
OpStore %_2_hueLumColor %115
|
||||
%116 = OpAccessChain %_ptr_Function_float %_4_satPt %int_1
|
||||
OpStore %116 %float_1
|
||||
%117 = OpAccessChain %_ptr_Function_float %_3_midPt %int_0
|
||||
OpStore %117 %float_1
|
||||
OpBranch %103
|
||||
%103 = OpLabel
|
||||
OpBranch %85
|
||||
%85 = OpLabel
|
||||
OpBranch %77
|
||||
%76 = OpLabel
|
||||
%119 = OpLoad %v3float %_2_hueLumColor
|
||||
%120 = OpCompositeExtract %float %119 0
|
||||
%121 = OpLoad %v3float %_2_hueLumColor
|
||||
%122 = OpCompositeExtract %float %121 2
|
||||
%123 = OpFOrdLessThanEqual %bool %120 %122
|
||||
OpSelectionMerge %126 None
|
||||
OpBranchConditional %123 %124 %125
|
||||
%124 = OpLabel
|
||||
%127 = OpLoad %v3float %_2_hueLumColor
|
||||
%128 = OpVectorShuffle %v3float %127 %127 1 0 2
|
||||
%129 = OpLoad %v3float %_2_hueLumColor
|
||||
%130 = OpVectorShuffle %v3float %129 %129 1 1 1
|
||||
%131 = OpFSub %v3float %128 %130
|
||||
OpStore %_2_hueLumColor %131
|
||||
%132 = OpAccessChain %_ptr_Function_float %_4_satPt %int_2
|
||||
OpStore %132 %float_1
|
||||
%133 = OpAccessChain %_ptr_Function_float %_3_midPt %int_0
|
||||
OpStore %133 %float_1
|
||||
OpBranch %126
|
||||
%125 = OpLabel
|
||||
%134 = OpLoad %v3float %_2_hueLumColor
|
||||
%135 = OpCompositeExtract %float %134 1
|
||||
%136 = OpLoad %v3float %_2_hueLumColor
|
||||
%137 = OpCompositeExtract %float %136 2
|
||||
%138 = OpFOrdLessThanEqual %bool %135 %137
|
||||
OpSelectionMerge %141 None
|
||||
OpBranchConditional %138 %139 %140
|
||||
%139 = OpLabel
|
||||
%142 = OpLoad %v3float %_2_hueLumColor
|
||||
%143 = OpVectorShuffle %v3float %142 %142 1 2 0
|
||||
%144 = OpLoad %v3float %_2_hueLumColor
|
||||
%145 = OpVectorShuffle %v3float %144 %144 1 1 1
|
||||
%146 = OpFSub %v3float %143 %145
|
||||
OpStore %_2_hueLumColor %146
|
||||
%147 = OpAccessChain %_ptr_Function_float %_4_satPt %int_0
|
||||
OpStore %147 %float_1
|
||||
%148 = OpAccessChain %_ptr_Function_float %_3_midPt %int_2
|
||||
OpStore %148 %float_1
|
||||
OpBranch %141
|
||||
%140 = OpLabel
|
||||
%149 = OpLoad %v3float %_2_hueLumColor
|
||||
%150 = OpVectorShuffle %v3float %149 %149 2 1 0
|
||||
%151 = OpLoad %v3float %_2_hueLumColor
|
||||
%152 = OpVectorShuffle %v3float %151 %151 2 2 2
|
||||
%153 = OpFSub %v3float %150 %152
|
||||
OpStore %_2_hueLumColor %153
|
||||
%154 = OpAccessChain %_ptr_Function_float %_4_satPt %int_0
|
||||
OpStore %154 %float_1
|
||||
%155 = OpAccessChain %_ptr_Function_float %_3_midPt %int_1
|
||||
OpStore %155 %float_1
|
||||
OpBranch %141
|
||||
%141 = OpLabel
|
||||
OpBranch %126
|
||||
%126 = OpLabel
|
||||
OpBranch %77
|
||||
%77 = OpLabel
|
||||
%156 = OpLoad %v3float %_2_hueLumColor
|
||||
%157 = OpCompositeExtract %float %156 2
|
||||
%158 = OpFOrdGreaterThan %bool %157 %float_0
|
||||
OpSelectionMerge %160 None
|
||||
OpBranchConditional %158 %159 %160
|
||||
%159 = OpLabel
|
||||
%161 = OpLoad %v3float %_3_midPt
|
||||
%162 = OpLoad %v3float %_2_hueLumColor
|
||||
%163 = OpCompositeExtract %float %162 1
|
||||
%164 = OpLoad %v3float %_2_hueLumColor
|
||||
%165 = OpCompositeExtract %float %164 2
|
||||
%166 = OpFDiv %float %163 %165
|
||||
%167 = OpVectorTimesScalar %v3float %161 %166
|
||||
OpStore %_3_midPt %167
|
||||
%168 = OpLoad %v3float %_3_midPt
|
||||
%169 = OpLoad %v3float %_4_satPt
|
||||
%170 = OpFAdd %v3float %168 %169
|
||||
%173 = OpLoad %v3float %r
|
||||
%174 = OpCompositeExtract %float %173 0
|
||||
%175 = OpLoad %v3float %r
|
||||
%176 = OpCompositeExtract %float %175 1
|
||||
%172 = OpExtInst %float %1 FMax %174 %176
|
||||
%177 = OpLoad %v3float %r
|
||||
%178 = OpCompositeExtract %float %177 2
|
||||
%171 = OpExtInst %float %1 FMax %172 %178
|
||||
%181 = OpLoad %v3float %r
|
||||
%182 = OpCompositeExtract %float %181 0
|
||||
%183 = OpLoad %v3float %r
|
||||
%184 = OpCompositeExtract %float %183 1
|
||||
%180 = OpExtInst %float %1 FMin %182 %184
|
||||
%185 = OpLoad %v3float %r
|
||||
%186 = OpCompositeExtract %float %185 2
|
||||
%179 = OpExtInst %float %1 FMin %180 %186
|
||||
%187 = OpFSub %float %171 %179
|
||||
%188 = OpVectorTimesScalar %v3float %170 %187
|
||||
OpStore %_2_hueLumColor %188
|
||||
OpBranch %160
|
||||
%160 = OpLabel
|
||||
%189 = OpLoad %v3float %_2_hueLumColor
|
||||
OpStore %l %189
|
||||
%190 = OpLoad %v3float %dsa
|
||||
OpStore %r %190
|
||||
OpBranch %63
|
||||
%63 = OpLabel
|
||||
%197 = OpLoad %v3float %r
|
||||
%192 = OpDot %float %196 %197
|
||||
OpStore %_5_lum %192
|
||||
%199 = OpLoad %float %_5_lum
|
||||
%201 = OpLoad %v3float %l
|
||||
%200 = OpDot %float %196 %201
|
||||
%202 = OpFSub %float %199 %200
|
||||
%203 = OpLoad %v3float %l
|
||||
%204 = OpCompositeConstruct %v3float %202 %202 %202
|
||||
%205 = OpFAdd %v3float %204 %203
|
||||
OpStore %_6_result %205
|
||||
%209 = OpLoad %v3float %_6_result
|
||||
%210 = OpCompositeExtract %float %209 0
|
||||
%211 = OpLoad %v3float %_6_result
|
||||
%212 = OpCompositeExtract %float %211 1
|
||||
%208 = OpExtInst %float %1 FMin %210 %212
|
||||
%213 = OpLoad %v3float %_6_result
|
||||
%214 = OpCompositeExtract %float %213 2
|
||||
%207 = OpExtInst %float %1 FMin %208 %214
|
||||
OpStore %_7_minComp %207
|
||||
%218 = OpLoad %v3float %_6_result
|
||||
%219 = OpCompositeExtract %float %218 0
|
||||
%220 = OpLoad %v3float %_6_result
|
||||
%221 = OpCompositeExtract %float %220 1
|
||||
%217 = OpExtInst %float %1 FMax %219 %221
|
||||
%222 = OpLoad %v3float %_6_result
|
||||
%223 = OpCompositeExtract %float %222 2
|
||||
%216 = OpExtInst %float %1 FMax %217 %223
|
||||
OpStore %_8_maxComp %216
|
||||
%225 = OpLoad %float %_7_minComp
|
||||
%226 = OpFOrdLessThan %bool %225 %float_0
|
||||
OpSelectionMerge %228 None
|
||||
OpBranchConditional %226 %227 %228
|
||||
%227 = OpLabel
|
||||
%229 = OpLoad %float %_5_lum
|
||||
%230 = OpLoad %float %_7_minComp
|
||||
%231 = OpFUnordNotEqual %bool %229 %230
|
||||
OpBranch %228
|
||||
%228 = OpLabel
|
||||
%232 = OpPhi %bool %false %63 %231 %227
|
||||
OpSelectionMerge %234 None
|
||||
OpBranchConditional %232 %233 %234
|
||||
%233 = OpLabel
|
||||
%235 = OpLoad %float %_5_lum
|
||||
%236 = OpLoad %v3float %_6_result
|
||||
%237 = OpLoad %float %_5_lum
|
||||
%238 = OpCompositeConstruct %v3float %237 %237 %237
|
||||
%239 = OpFSub %v3float %236 %238
|
||||
%240 = OpLoad %float %_5_lum
|
||||
%241 = OpLoad %float %_5_lum
|
||||
%242 = OpLoad %float %_7_minComp
|
||||
%243 = OpFSub %float %241 %242
|
||||
%244 = OpFDiv %float %240 %243
|
||||
%245 = OpVectorTimesScalar %v3float %239 %244
|
||||
%246 = OpCompositeConstruct %v3float %235 %235 %235
|
||||
%247 = OpFAdd %v3float %246 %245
|
||||
OpStore %_6_result %247
|
||||
OpBranch %234
|
||||
%234 = OpLabel
|
||||
%248 = OpLoad %float %_8_maxComp
|
||||
%249 = OpLoad %float %alpha
|
||||
%250 = OpFOrdGreaterThan %bool %248 %249
|
||||
OpSelectionMerge %252 None
|
||||
OpBranchConditional %250 %251 %252
|
||||
%251 = OpLabel
|
||||
%253 = OpLoad %float %_8_maxComp
|
||||
%254 = OpLoad %float %_5_lum
|
||||
%255 = OpFUnordNotEqual %bool %253 %254
|
||||
OpBranch %252
|
||||
%252 = OpLabel
|
||||
%256 = OpPhi %bool %false %234 %255 %251
|
||||
OpSelectionMerge %258 None
|
||||
OpBranchConditional %256 %257 %258
|
||||
%257 = OpLabel
|
||||
%259 = OpLoad %float %_5_lum
|
||||
%260 = OpLoad %v3float %_6_result
|
||||
%261 = OpLoad %float %_5_lum
|
||||
%262 = OpCompositeConstruct %v3float %261 %261 %261
|
||||
%263 = OpFSub %v3float %260 %262
|
||||
%264 = OpLoad %float %alpha
|
||||
%265 = OpLoad %float %_5_lum
|
||||
%266 = OpFSub %float %264 %265
|
||||
%267 = OpVectorTimesScalar %v3float %263 %266
|
||||
%268 = OpLoad %float %_8_maxComp
|
||||
%269 = OpLoad %float %_5_lum
|
||||
%270 = OpFSub %float %268 %269
|
||||
%271 = OpFDiv %float %float_1 %270
|
||||
%272 = OpVectorTimesScalar %v3float %267 %271
|
||||
%273 = OpCompositeConstruct %v3float %259 %259 %259
|
||||
%274 = OpFAdd %v3float %273 %272
|
||||
OpStore %_6_result %274
|
||||
OpBranch %258
|
||||
%258 = OpLabel
|
||||
%275 = OpLoad %v3float %_6_result
|
||||
%276 = OpLoad %v4float %18
|
||||
%277 = OpVectorShuffle %v3float %276 %276 0 1 2
|
||||
%278 = OpFAdd %v3float %275 %277
|
||||
%279 = OpLoad %v3float %dsa
|
||||
%280 = OpFSub %v3float %278 %279
|
||||
%281 = OpLoad %v4float %17
|
||||
%282 = OpVectorShuffle %v3float %281 %281 0 1 2
|
||||
%283 = OpFAdd %v3float %280 %282
|
||||
%284 = OpLoad %v3float %sda
|
||||
%285 = OpFSub %v3float %283 %284
|
||||
%286 = OpCompositeExtract %float %285 0
|
||||
%287 = OpCompositeExtract %float %285 1
|
||||
%288 = OpCompositeExtract %float %285 2
|
||||
%289 = OpLoad %v4float %17
|
||||
%290 = OpCompositeExtract %float %289 3
|
||||
%291 = OpLoad %v4float %18
|
||||
%292 = OpCompositeExtract %float %291 3
|
||||
%293 = OpFAdd %float %290 %292
|
||||
%294 = OpLoad %float %alpha
|
||||
%295 = OpFSub %float %293 %294
|
||||
%296 = OpCompositeConstruct %v4float %286 %287 %288 %295
|
||||
OpReturnValue %296
|
||||
%134 = OpLoad %v3float %r
|
||||
%129 = OpDot %float %133 %134
|
||||
OpStore %_4_lum %129
|
||||
%136 = OpLoad %float %_4_lum
|
||||
%138 = OpLoad %v3float %l
|
||||
%137 = OpDot %float %133 %138
|
||||
%139 = OpFSub %float %136 %137
|
||||
%140 = OpLoad %v3float %l
|
||||
%141 = OpCompositeConstruct %v3float %139 %139 %139
|
||||
%142 = OpFAdd %v3float %141 %140
|
||||
OpStore %_5_result %142
|
||||
%146 = OpLoad %v3float %_5_result
|
||||
%147 = OpCompositeExtract %float %146 0
|
||||
%148 = OpLoad %v3float %_5_result
|
||||
%149 = OpCompositeExtract %float %148 1
|
||||
%145 = OpExtInst %float %1 FMin %147 %149
|
||||
%150 = OpLoad %v3float %_5_result
|
||||
%151 = OpCompositeExtract %float %150 2
|
||||
%144 = OpExtInst %float %1 FMin %145 %151
|
||||
OpStore %_6_minComp %144
|
||||
%155 = OpLoad %v3float %_5_result
|
||||
%156 = OpCompositeExtract %float %155 0
|
||||
%157 = OpLoad %v3float %_5_result
|
||||
%158 = OpCompositeExtract %float %157 1
|
||||
%154 = OpExtInst %float %1 FMax %156 %158
|
||||
%159 = OpLoad %v3float %_5_result
|
||||
%160 = OpCompositeExtract %float %159 2
|
||||
%153 = OpExtInst %float %1 FMax %154 %160
|
||||
OpStore %_7_maxComp %153
|
||||
%162 = OpLoad %float %_6_minComp
|
||||
%163 = OpFOrdLessThan %bool %162 %float_0
|
||||
OpSelectionMerge %165 None
|
||||
OpBranchConditional %163 %164 %165
|
||||
%164 = OpLabel
|
||||
%166 = OpLoad %float %_4_lum
|
||||
%167 = OpLoad %float %_6_minComp
|
||||
%168 = OpFUnordNotEqual %bool %166 %167
|
||||
OpBranch %165
|
||||
%165 = OpLabel
|
||||
%169 = OpPhi %bool %false %84 %168 %164
|
||||
OpSelectionMerge %171 None
|
||||
OpBranchConditional %169 %170 %171
|
||||
%170 = OpLabel
|
||||
%172 = OpLoad %float %_4_lum
|
||||
%173 = OpLoad %v3float %_5_result
|
||||
%174 = OpLoad %float %_4_lum
|
||||
%175 = OpCompositeConstruct %v3float %174 %174 %174
|
||||
%176 = OpFSub %v3float %173 %175
|
||||
%177 = OpLoad %float %_4_lum
|
||||
%178 = OpLoad %float %_4_lum
|
||||
%179 = OpLoad %float %_6_minComp
|
||||
%180 = OpFSub %float %178 %179
|
||||
%181 = OpFDiv %float %177 %180
|
||||
%182 = OpVectorTimesScalar %v3float %176 %181
|
||||
%183 = OpCompositeConstruct %v3float %172 %172 %172
|
||||
%184 = OpFAdd %v3float %183 %182
|
||||
OpStore %_5_result %184
|
||||
OpBranch %171
|
||||
%171 = OpLabel
|
||||
%185 = OpLoad %float %_7_maxComp
|
||||
%186 = OpLoad %float %alpha
|
||||
%187 = OpFOrdGreaterThan %bool %185 %186
|
||||
OpSelectionMerge %189 None
|
||||
OpBranchConditional %187 %188 %189
|
||||
%188 = OpLabel
|
||||
%190 = OpLoad %float %_7_maxComp
|
||||
%191 = OpLoad %float %_4_lum
|
||||
%192 = OpFUnordNotEqual %bool %190 %191
|
||||
OpBranch %189
|
||||
%189 = OpLabel
|
||||
%193 = OpPhi %bool %false %171 %192 %188
|
||||
OpSelectionMerge %195 None
|
||||
OpBranchConditional %193 %194 %195
|
||||
%194 = OpLabel
|
||||
%196 = OpLoad %float %_4_lum
|
||||
%197 = OpLoad %v3float %_5_result
|
||||
%198 = OpLoad %float %_4_lum
|
||||
%199 = OpCompositeConstruct %v3float %198 %198 %198
|
||||
%200 = OpFSub %v3float %197 %199
|
||||
%201 = OpLoad %float %alpha
|
||||
%202 = OpLoad %float %_4_lum
|
||||
%203 = OpFSub %float %201 %202
|
||||
%204 = OpVectorTimesScalar %v3float %200 %203
|
||||
%205 = OpLoad %float %_7_maxComp
|
||||
%206 = OpLoad %float %_4_lum
|
||||
%207 = OpFSub %float %205 %206
|
||||
%208 = OpFDiv %float %float_1 %207
|
||||
%209 = OpVectorTimesScalar %v3float %204 %208
|
||||
%210 = OpCompositeConstruct %v3float %196 %196 %196
|
||||
%211 = OpFAdd %v3float %210 %209
|
||||
OpStore %_5_result %211
|
||||
OpBranch %195
|
||||
%195 = OpLabel
|
||||
%212 = OpLoad %v3float %_5_result
|
||||
%213 = OpLoad %v4float %41
|
||||
%214 = OpVectorShuffle %v3float %213 %213 0 1 2
|
||||
%215 = OpFAdd %v3float %212 %214
|
||||
%216 = OpLoad %v3float %dsa
|
||||
%217 = OpFSub %v3float %215 %216
|
||||
%218 = OpLoad %v4float %40
|
||||
%219 = OpVectorShuffle %v3float %218 %218 0 1 2
|
||||
%220 = OpFAdd %v3float %217 %219
|
||||
%221 = OpLoad %v3float %sda
|
||||
%222 = OpFSub %v3float %220 %221
|
||||
%223 = OpCompositeExtract %float %222 0
|
||||
%224 = OpCompositeExtract %float %222 1
|
||||
%225 = OpCompositeExtract %float %222 2
|
||||
%226 = OpLoad %v4float %40
|
||||
%227 = OpCompositeExtract %float %226 3
|
||||
%228 = OpLoad %v4float %41
|
||||
%229 = OpCompositeExtract %float %228 3
|
||||
%230 = OpFAdd %float %227 %229
|
||||
%231 = OpLoad %float %alpha
|
||||
%232 = OpFSub %float %230 %231
|
||||
%233 = OpCompositeConstruct %v4float %223 %224 %225 %232
|
||||
OpReturnValue %233
|
||||
OpFunctionEnd
|
||||
%main = OpFunction %void None %298
|
||||
%299 = OpLabel
|
||||
%303 = OpVariable %_ptr_Function_v4float Function
|
||||
%306 = OpVariable %_ptr_Function_v4float Function
|
||||
%307 = OpVariable %_ptr_Function_bool Function
|
||||
%308 = OpVariable %_ptr_Function_bool Function
|
||||
%300 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0
|
||||
%302 = OpLoad %v4float %300
|
||||
OpStore %303 %302
|
||||
%304 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1
|
||||
%305 = OpLoad %v4float %304
|
||||
OpStore %306 %305
|
||||
OpStore %307 %false
|
||||
OpStore %308 %false
|
||||
%309 = OpFunctionCall %v4float %blend_hslc_h4h4h4bb %303 %306 %307 %308
|
||||
OpStore %sk_FragColor %309
|
||||
%main = OpFunction %void None %235
|
||||
%236 = OpLabel
|
||||
%242 = OpVariable %_ptr_Function_v4float Function
|
||||
%246 = OpVariable %_ptr_Function_v4float Function
|
||||
%247 = OpVariable %_ptr_Function_bool Function
|
||||
%248 = OpVariable %_ptr_Function_bool Function
|
||||
%237 = OpAccessChain %_ptr_Uniform_v4float %12 %int_0
|
||||
%241 = OpLoad %v4float %237
|
||||
OpStore %242 %241
|
||||
%243 = OpAccessChain %_ptr_Uniform_v4float %12 %int_1
|
||||
%245 = OpLoad %v4float %243
|
||||
OpStore %246 %245
|
||||
OpStore %247 %false
|
||||
OpStore %248 %false
|
||||
%249 = OpFunctionCall %v4float %blend_hslc_h4h4h4bb %242 %246 %247 %248
|
||||
OpStore %sk_FragColor %249
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
@ -2,6 +2,9 @@
|
||||
out vec4 sk_FragColor;
|
||||
uniform vec4 src;
|
||||
uniform vec4 dst;
|
||||
float blend_color_saturation_Qhh3(vec3 color) {
|
||||
return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z);
|
||||
}
|
||||
vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) {
|
||||
float alpha = dst.w * src.w;
|
||||
vec3 sda = src.xyz * dst.w;
|
||||
@ -9,48 +12,22 @@ vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) {
|
||||
vec3 l = flip ? dsa : sda;
|
||||
vec3 r = flip ? sda : dsa;
|
||||
if (saturate) {
|
||||
vec3 _2_hueLumColor = l;
|
||||
vec3 _3_midPt = vec3(0.0);
|
||||
vec3 _4_satPt = vec3(0.0);
|
||||
if (_2_hueLumColor.x <= _2_hueLumColor.y) {
|
||||
if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor -= _2_hueLumColor.xxx;
|
||||
_3_midPt.y = (_4_satPt.z = 1.0);
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.xzy - _2_hueLumColor.xxx;
|
||||
_3_midPt.z = (_4_satPt.y = 1.0);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zxy - _2_hueLumColor.zzz;
|
||||
_3_midPt.x = (_4_satPt.y = 1.0);
|
||||
}
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yxz - _2_hueLumColor.yyy;
|
||||
_3_midPt.x = (_4_satPt.z = 1.0);
|
||||
} else if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yzx - _2_hueLumColor.yyy;
|
||||
_3_midPt.z = (_4_satPt.x = 1.0);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zyx - _2_hueLumColor.zzz;
|
||||
_3_midPt.y = (_4_satPt.x = 1.0);
|
||||
}
|
||||
if (_2_hueLumColor.z > 0.0) {
|
||||
_3_midPt *= _2_hueLumColor.y / _2_hueLumColor.z;
|
||||
_2_hueLumColor = (_3_midPt + _4_satPt) * (max(max(r.x, r.y), r.z) - min(min(r.x, r.y), r.z));
|
||||
}
|
||||
l = _2_hueLumColor;
|
||||
float _2_mn = min(min(l.x, l.y), l.z);
|
||||
float _3_mx = max(max(l.x, l.y), l.z);
|
||||
l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : vec3(0.0);
|
||||
r = dsa;
|
||||
}
|
||||
float _5_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r);
|
||||
vec3 _6_result = (_5_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l;
|
||||
float _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
|
||||
float _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
|
||||
if (_7_minComp < 0.0 && _5_lum != _7_minComp) {
|
||||
_6_result = _5_lum + (_6_result - _5_lum) * (_5_lum / (_5_lum - _7_minComp));
|
||||
float _4_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r);
|
||||
vec3 _5_result = (_4_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l;
|
||||
float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z);
|
||||
float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z);
|
||||
if (_6_minComp < 0.0 && _4_lum != _6_minComp) {
|
||||
_5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp));
|
||||
}
|
||||
if (_8_maxComp > alpha && _8_maxComp != _5_lum) {
|
||||
_6_result = _5_lum + ((_6_result - _5_lum) * (alpha - _5_lum)) / (_8_maxComp - _5_lum);
|
||||
if (_7_maxComp > alpha && _7_maxComp != _4_lum) {
|
||||
_5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum);
|
||||
}
|
||||
return vec4((((_6_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
}
|
||||
void main() {
|
||||
sk_FragColor = blend_hslc_h4h4h4bb(src, dst, false, false);
|
||||
|
@ -10,6 +10,9 @@ struct Inputs {
|
||||
struct Outputs {
|
||||
half4 sk_FragColor [[color(0)]];
|
||||
};
|
||||
half blend_color_saturation_Qhh3(half3 color) {
|
||||
return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z);
|
||||
}
|
||||
half4 blend_hslc_h4h4h4bb(half4 src, half4 dst, bool flip, bool saturate) {
|
||||
half alpha = dst.w * src.w;
|
||||
half3 sda = src.xyz * dst.w;
|
||||
@ -17,48 +20,22 @@ half4 blend_hslc_h4h4h4bb(half4 src, half4 dst, bool flip, bool saturate) {
|
||||
half3 l = flip ? dsa : sda;
|
||||
half3 r = flip ? sda : dsa;
|
||||
if (saturate) {
|
||||
half3 _2_hueLumColor = l;
|
||||
half3 _3_midPt = half3(0.0h);
|
||||
half3 _4_satPt = half3(0.0h);
|
||||
if (_2_hueLumColor.x <= _2_hueLumColor.y) {
|
||||
if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor -= _2_hueLumColor.xxx;
|
||||
_3_midPt.y = (_4_satPt.z = 1.0h);
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.xzy - _2_hueLumColor.xxx;
|
||||
_3_midPt.z = (_4_satPt.y = 1.0h);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zxy - _2_hueLumColor.zzz;
|
||||
_3_midPt.x = (_4_satPt.y = 1.0h);
|
||||
}
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yxz - _2_hueLumColor.yyy;
|
||||
_3_midPt.x = (_4_satPt.z = 1.0h);
|
||||
} else if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yzx - _2_hueLumColor.yyy;
|
||||
_3_midPt.z = (_4_satPt.x = 1.0h);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zyx - _2_hueLumColor.zzz;
|
||||
_3_midPt.y = (_4_satPt.x = 1.0h);
|
||||
}
|
||||
if (_2_hueLumColor.z > 0.0h) {
|
||||
_3_midPt *= _2_hueLumColor.y / _2_hueLumColor.z;
|
||||
_2_hueLumColor = (_3_midPt + _4_satPt) * (max(max(r.x, r.y), r.z) - min(min(r.x, r.y), r.z));
|
||||
}
|
||||
l = _2_hueLumColor;
|
||||
half _2_mn = min(min(l.x, l.y), l.z);
|
||||
half _3_mx = max(max(l.x, l.y), l.z);
|
||||
l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : half3(0.0h);
|
||||
r = dsa;
|
||||
}
|
||||
half _5_lum = dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), r);
|
||||
half3 _6_result = (_5_lum - dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), l)) + l;
|
||||
half _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
|
||||
half _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
|
||||
if (_7_minComp < 0.0h && _5_lum != _7_minComp) {
|
||||
_6_result = _5_lum + (_6_result - _5_lum) * (_5_lum / (_5_lum - _7_minComp));
|
||||
half _4_lum = dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), r);
|
||||
half3 _5_result = (_4_lum - dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), l)) + l;
|
||||
half _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z);
|
||||
half _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z);
|
||||
if (_6_minComp < 0.0h && _4_lum != _6_minComp) {
|
||||
_5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp));
|
||||
}
|
||||
if (_8_maxComp > alpha && _8_maxComp != _5_lum) {
|
||||
_6_result = _5_lum + ((_6_result - _5_lum) * (alpha - _5_lum)) / (_8_maxComp - _5_lum);
|
||||
if (_7_maxComp > alpha && _7_maxComp != _4_lum) {
|
||||
_5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum);
|
||||
}
|
||||
return half4((((_6_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
return half4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
}
|
||||
fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
|
||||
Outputs _out;
|
||||
|
@ -2,6 +2,9 @@
|
||||
out vec4 sk_FragColor;
|
||||
uniform vec4 src;
|
||||
uniform vec4 dst;
|
||||
float blend_color_saturation_Qhh3(vec3 color) {
|
||||
return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z);
|
||||
}
|
||||
vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) {
|
||||
float alpha = dst.w * src.w;
|
||||
vec3 sda = src.xyz * dst.w;
|
||||
@ -9,48 +12,22 @@ vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) {
|
||||
vec3 l = flip ? dsa : sda;
|
||||
vec3 r = flip ? sda : dsa;
|
||||
if (saturate) {
|
||||
vec3 _2_hueLumColor = l;
|
||||
vec3 _3_midPt = vec3(0.0);
|
||||
vec3 _4_satPt = vec3(0.0);
|
||||
if (_2_hueLumColor.x <= _2_hueLumColor.y) {
|
||||
if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor -= _2_hueLumColor.xxx;
|
||||
_3_midPt.y = (_4_satPt.z = 1.0);
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.xzy - _2_hueLumColor.xxx;
|
||||
_3_midPt.z = (_4_satPt.y = 1.0);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zxy - _2_hueLumColor.zzz;
|
||||
_3_midPt.x = (_4_satPt.y = 1.0);
|
||||
}
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yxz - _2_hueLumColor.yyy;
|
||||
_3_midPt.x = (_4_satPt.z = 1.0);
|
||||
} else if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yzx - _2_hueLumColor.yyy;
|
||||
_3_midPt.z = (_4_satPt.x = 1.0);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zyx - _2_hueLumColor.zzz;
|
||||
_3_midPt.y = (_4_satPt.x = 1.0);
|
||||
}
|
||||
if (_2_hueLumColor.z > 0.0) {
|
||||
_3_midPt *= _2_hueLumColor.y / _2_hueLumColor.z;
|
||||
_2_hueLumColor = (_3_midPt + _4_satPt) * (max(max(r.x, r.y), r.z) - min(min(r.x, r.y), r.z));
|
||||
}
|
||||
l = _2_hueLumColor;
|
||||
float _2_mn = min(min(l.x, l.y), l.z);
|
||||
float _3_mx = max(max(l.x, l.y), l.z);
|
||||
l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : vec3(0.0);
|
||||
r = dsa;
|
||||
}
|
||||
float _5_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r);
|
||||
vec3 _6_result = (_5_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l;
|
||||
float _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
|
||||
float _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
|
||||
if (_7_minComp < 0.0 && _5_lum != _7_minComp) {
|
||||
_6_result = _5_lum + (_6_result - _5_lum) * (_5_lum / (_5_lum - _7_minComp));
|
||||
float _4_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r);
|
||||
vec3 _5_result = (_4_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l;
|
||||
float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z);
|
||||
float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z);
|
||||
if (_6_minComp < 0.0 && _4_lum != _6_minComp) {
|
||||
_5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp));
|
||||
}
|
||||
if (_8_maxComp > alpha && _8_maxComp != _5_lum) {
|
||||
_6_result = _5_lum + ((_6_result - _5_lum) * (alpha - _5_lum)) / (_8_maxComp - _5_lum);
|
||||
if (_7_maxComp > alpha && _7_maxComp != _4_lum) {
|
||||
_5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum);
|
||||
}
|
||||
return vec4((((_6_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
}
|
||||
void main() {
|
||||
sk_FragColor = blend_hslc_h4h4h4bb(src, dst, false, false);
|
||||
|
@ -8,19 +8,19 @@ OpName %sk_Clockwise "sk_Clockwise"
|
||||
OpName %_UniformBuffer "_UniformBuffer"
|
||||
OpMemberName %_UniformBuffer 0 "src"
|
||||
OpMemberName %_UniformBuffer 1 "dst"
|
||||
OpName %blend_color_saturation_Qhh3 "blend_color_saturation_Qhh3"
|
||||
OpName %blend_hslc_h4h4h4bb "blend_hslc_h4h4h4bb"
|
||||
OpName %alpha "alpha"
|
||||
OpName %sda "sda"
|
||||
OpName %dsa "dsa"
|
||||
OpName %l "l"
|
||||
OpName %r "r"
|
||||
OpName %_2_hueLumColor "_2_hueLumColor"
|
||||
OpName %_3_midPt "_3_midPt"
|
||||
OpName %_4_satPt "_4_satPt"
|
||||
OpName %_5_lum "_5_lum"
|
||||
OpName %_6_result "_6_result"
|
||||
OpName %_7_minComp "_7_minComp"
|
||||
OpName %_8_maxComp "_8_maxComp"
|
||||
OpName %_2_mn "_2_mn"
|
||||
OpName %_3_mx "_3_mx"
|
||||
OpName %_4_lum "_4_lum"
|
||||
OpName %_5_result "_5_result"
|
||||
OpName %_6_minComp "_6_minComp"
|
||||
OpName %_7_maxComp "_7_maxComp"
|
||||
OpName %main "main"
|
||||
OpDecorate %sk_FragColor RelaxedPrecision
|
||||
OpDecorate %sk_FragColor Location 0
|
||||
@ -31,124 +31,129 @@ OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
|
||||
OpMemberDecorate %_UniformBuffer 1 Offset 16
|
||||
OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
|
||||
OpDecorate %_UniformBuffer Block
|
||||
OpDecorate %11 Binding 0
|
||||
OpDecorate %11 DescriptorSet 0
|
||||
OpDecorate %alpha RelaxedPrecision
|
||||
OpDecorate %12 Binding 0
|
||||
OpDecorate %12 DescriptorSet 0
|
||||
OpDecorate %22 RelaxedPrecision
|
||||
OpDecorate %23 RelaxedPrecision
|
||||
OpDecorate %24 RelaxedPrecision
|
||||
OpDecorate %25 RelaxedPrecision
|
||||
OpDecorate %26 RelaxedPrecision
|
||||
OpDecorate %27 RelaxedPrecision
|
||||
OpDecorate %28 RelaxedPrecision
|
||||
OpDecorate %sda RelaxedPrecision
|
||||
OpDecorate %30 RelaxedPrecision
|
||||
OpDecorate %31 RelaxedPrecision
|
||||
OpDecorate %32 RelaxedPrecision
|
||||
OpDecorate %33 RelaxedPrecision
|
||||
OpDecorate %34 RelaxedPrecision
|
||||
OpDecorate %35 RelaxedPrecision
|
||||
OpDecorate %36 RelaxedPrecision
|
||||
OpDecorate %dsa RelaxedPrecision
|
||||
OpDecorate %38 RelaxedPrecision
|
||||
OpDecorate %39 RelaxedPrecision
|
||||
OpDecorate %40 RelaxedPrecision
|
||||
OpDecorate %41 RelaxedPrecision
|
||||
OpDecorate %42 RelaxedPrecision
|
||||
OpDecorate %l RelaxedPrecision
|
||||
OpDecorate %44 RelaxedPrecision
|
||||
OpDecorate %alpha RelaxedPrecision
|
||||
OpDecorate %47 RelaxedPrecision
|
||||
OpDecorate %48 RelaxedPrecision
|
||||
OpDecorate %49 RelaxedPrecision
|
||||
OpDecorate %50 RelaxedPrecision
|
||||
OpDecorate %51 RelaxedPrecision
|
||||
OpDecorate %r RelaxedPrecision
|
||||
OpDecorate %sda RelaxedPrecision
|
||||
OpDecorate %53 RelaxedPrecision
|
||||
OpDecorate %58 RelaxedPrecision
|
||||
OpDecorate %54 RelaxedPrecision
|
||||
OpDecorate %55 RelaxedPrecision
|
||||
OpDecorate %56 RelaxedPrecision
|
||||
OpDecorate %57 RelaxedPrecision
|
||||
OpDecorate %dsa RelaxedPrecision
|
||||
OpDecorate %59 RelaxedPrecision
|
||||
OpDecorate %60 RelaxedPrecision
|
||||
OpDecorate %61 RelaxedPrecision
|
||||
OpDecorate %_2_hueLumColor RelaxedPrecision
|
||||
OpDecorate %62 RelaxedPrecision
|
||||
OpDecorate %63 RelaxedPrecision
|
||||
OpDecorate %l RelaxedPrecision
|
||||
OpDecorate %65 RelaxedPrecision
|
||||
OpDecorate %_3_midPt RelaxedPrecision
|
||||
OpDecorate %68 RelaxedPrecision
|
||||
OpDecorate %_4_satPt RelaxedPrecision
|
||||
OpDecorate %70 RelaxedPrecision
|
||||
OpDecorate %71 RelaxedPrecision
|
||||
OpDecorate %72 RelaxedPrecision
|
||||
OpDecorate %73 RelaxedPrecision
|
||||
OpDecorate %78 RelaxedPrecision
|
||||
OpDecorate %r RelaxedPrecision
|
||||
OpDecorate %74 RelaxedPrecision
|
||||
OpDecorate %79 RelaxedPrecision
|
||||
OpDecorate %80 RelaxedPrecision
|
||||
OpDecorate %81 RelaxedPrecision
|
||||
OpDecorate %86 RelaxedPrecision
|
||||
OpDecorate %87 RelaxedPrecision
|
||||
OpDecorate %82 RelaxedPrecision
|
||||
OpDecorate %_2_mn RelaxedPrecision
|
||||
OpDecorate %88 RelaxedPrecision
|
||||
OpDecorate %89 RelaxedPrecision
|
||||
OpDecorate %96 RelaxedPrecision
|
||||
OpDecorate %90 RelaxedPrecision
|
||||
OpDecorate %91 RelaxedPrecision
|
||||
OpDecorate %92 RelaxedPrecision
|
||||
OpDecorate %93 RelaxedPrecision
|
||||
OpDecorate %_3_mx RelaxedPrecision
|
||||
OpDecorate %97 RelaxedPrecision
|
||||
OpDecorate %98 RelaxedPrecision
|
||||
OpDecorate %99 RelaxedPrecision
|
||||
OpDecorate %100 RelaxedPrecision
|
||||
OpDecorate %101 RelaxedPrecision
|
||||
OpDecorate %102 RelaxedPrecision
|
||||
OpDecorate %103 RelaxedPrecision
|
||||
OpDecorate %104 RelaxedPrecision
|
||||
OpDecorate %105 RelaxedPrecision
|
||||
OpDecorate %106 RelaxedPrecision
|
||||
OpDecorate %107 RelaxedPrecision
|
||||
OpDecorate %108 RelaxedPrecision
|
||||
OpDecorate %110 RelaxedPrecision
|
||||
OpDecorate %111 RelaxedPrecision
|
||||
OpDecorate %112 RelaxedPrecision
|
||||
OpDecorate %113 RelaxedPrecision
|
||||
OpDecorate %114 RelaxedPrecision
|
||||
OpDecorate %115 RelaxedPrecision
|
||||
OpDecorate %117 RelaxedPrecision
|
||||
OpDecorate %118 RelaxedPrecision
|
||||
OpDecorate %119 RelaxedPrecision
|
||||
OpDecorate %120 RelaxedPrecision
|
||||
OpDecorate %121 RelaxedPrecision
|
||||
OpDecorate %122 RelaxedPrecision
|
||||
OpDecorate %123 RelaxedPrecision
|
||||
OpDecorate %125 RelaxedPrecision
|
||||
OpDecorate %126 RelaxedPrecision
|
||||
OpDecorate %127 RelaxedPrecision
|
||||
OpDecorate %128 RelaxedPrecision
|
||||
OpDecorate %_4_lum RelaxedPrecision
|
||||
OpDecorate %129 RelaxedPrecision
|
||||
OpDecorate %130 RelaxedPrecision
|
||||
OpDecorate %131 RelaxedPrecision
|
||||
OpDecorate %133 RelaxedPrecision
|
||||
OpDecorate %134 RelaxedPrecision
|
||||
OpDecorate %135 RelaxedPrecision
|
||||
OpDecorate %_5_result RelaxedPrecision
|
||||
OpDecorate %136 RelaxedPrecision
|
||||
OpDecorate %137 RelaxedPrecision
|
||||
OpDecorate %138 RelaxedPrecision
|
||||
OpDecorate %139 RelaxedPrecision
|
||||
OpDecorate %140 RelaxedPrecision
|
||||
OpDecorate %141 RelaxedPrecision
|
||||
OpDecorate %142 RelaxedPrecision
|
||||
OpDecorate %143 RelaxedPrecision
|
||||
OpDecorate %144 RelaxedPrecision
|
||||
OpDecorate %145 RelaxedPrecision
|
||||
OpDecorate %_6_minComp RelaxedPrecision
|
||||
OpDecorate %146 RelaxedPrecision
|
||||
OpDecorate %147 RelaxedPrecision
|
||||
OpDecorate %148 RelaxedPrecision
|
||||
OpDecorate %149 RelaxedPrecision
|
||||
OpDecorate %150 RelaxedPrecision
|
||||
OpDecorate %151 RelaxedPrecision
|
||||
OpDecorate %152 RelaxedPrecision
|
||||
OpDecorate %153 RelaxedPrecision
|
||||
OpDecorate %_7_maxComp RelaxedPrecision
|
||||
OpDecorate %155 RelaxedPrecision
|
||||
OpDecorate %156 RelaxedPrecision
|
||||
OpDecorate %157 RelaxedPrecision
|
||||
OpDecorate %161 RelaxedPrecision
|
||||
OpDecorate %158 RelaxedPrecision
|
||||
OpDecorate %159 RelaxedPrecision
|
||||
OpDecorate %160 RelaxedPrecision
|
||||
OpDecorate %162 RelaxedPrecision
|
||||
OpDecorate %163 RelaxedPrecision
|
||||
OpDecorate %164 RelaxedPrecision
|
||||
OpDecorate %165 RelaxedPrecision
|
||||
OpDecorate %166 RelaxedPrecision
|
||||
OpDecorate %167 RelaxedPrecision
|
||||
OpDecorate %168 RelaxedPrecision
|
||||
OpDecorate %169 RelaxedPrecision
|
||||
OpDecorate %170 RelaxedPrecision
|
||||
OpDecorate %172 RelaxedPrecision
|
||||
OpDecorate %173 RelaxedPrecision
|
||||
OpDecorate %174 RelaxedPrecision
|
||||
OpDecorate %175 RelaxedPrecision
|
||||
OpDecorate %176 RelaxedPrecision
|
||||
OpDecorate %177 RelaxedPrecision
|
||||
OpDecorate %178 RelaxedPrecision
|
||||
OpDecorate %179 RelaxedPrecision
|
||||
OpDecorate %180 RelaxedPrecision
|
||||
OpDecorate %181 RelaxedPrecision
|
||||
OpDecorate %182 RelaxedPrecision
|
||||
OpDecorate %183 RelaxedPrecision
|
||||
OpDecorate %184 RelaxedPrecision
|
||||
OpDecorate %185 RelaxedPrecision
|
||||
OpDecorate %186 RelaxedPrecision
|
||||
OpDecorate %187 RelaxedPrecision
|
||||
OpDecorate %188 RelaxedPrecision
|
||||
OpDecorate %189 RelaxedPrecision
|
||||
OpDecorate %190 RelaxedPrecision
|
||||
OpDecorate %_5_lum RelaxedPrecision
|
||||
OpDecorate %192 RelaxedPrecision
|
||||
OpDecorate %191 RelaxedPrecision
|
||||
OpDecorate %196 RelaxedPrecision
|
||||
OpDecorate %197 RelaxedPrecision
|
||||
OpDecorate %_6_result RelaxedPrecision
|
||||
OpDecorate %198 RelaxedPrecision
|
||||
OpDecorate %199 RelaxedPrecision
|
||||
OpDecorate %200 RelaxedPrecision
|
||||
OpDecorate %201 RelaxedPrecision
|
||||
@ -156,80 +161,36 @@ OpDecorate %202 RelaxedPrecision
|
||||
OpDecorate %203 RelaxedPrecision
|
||||
OpDecorate %204 RelaxedPrecision
|
||||
OpDecorate %205 RelaxedPrecision
|
||||
OpDecorate %_7_minComp RelaxedPrecision
|
||||
OpDecorate %206 RelaxedPrecision
|
||||
OpDecorate %207 RelaxedPrecision
|
||||
OpDecorate %208 RelaxedPrecision
|
||||
OpDecorate %209 RelaxedPrecision
|
||||
OpDecorate %210 RelaxedPrecision
|
||||
OpDecorate %211 RelaxedPrecision
|
||||
OpDecorate %212 RelaxedPrecision
|
||||
OpDecorate %213 RelaxedPrecision
|
||||
OpDecorate %214 RelaxedPrecision
|
||||
OpDecorate %_8_maxComp RelaxedPrecision
|
||||
OpDecorate %215 RelaxedPrecision
|
||||
OpDecorate %216 RelaxedPrecision
|
||||
OpDecorate %217 RelaxedPrecision
|
||||
OpDecorate %218 RelaxedPrecision
|
||||
OpDecorate %219 RelaxedPrecision
|
||||
OpDecorate %220 RelaxedPrecision
|
||||
OpDecorate %221 RelaxedPrecision
|
||||
OpDecorate %222 RelaxedPrecision
|
||||
OpDecorate %223 RelaxedPrecision
|
||||
OpDecorate %224 RelaxedPrecision
|
||||
OpDecorate %225 RelaxedPrecision
|
||||
OpDecorate %226 RelaxedPrecision
|
||||
OpDecorate %227 RelaxedPrecision
|
||||
OpDecorate %228 RelaxedPrecision
|
||||
OpDecorate %229 RelaxedPrecision
|
||||
OpDecorate %230 RelaxedPrecision
|
||||
OpDecorate %235 RelaxedPrecision
|
||||
OpDecorate %236 RelaxedPrecision
|
||||
OpDecorate %237 RelaxedPrecision
|
||||
OpDecorate %238 RelaxedPrecision
|
||||
OpDecorate %239 RelaxedPrecision
|
||||
OpDecorate %240 RelaxedPrecision
|
||||
OpDecorate %231 RelaxedPrecision
|
||||
OpDecorate %232 RelaxedPrecision
|
||||
OpDecorate %233 RelaxedPrecision
|
||||
OpDecorate %241 RelaxedPrecision
|
||||
OpDecorate %242 RelaxedPrecision
|
||||
OpDecorate %243 RelaxedPrecision
|
||||
OpDecorate %244 RelaxedPrecision
|
||||
OpDecorate %245 RelaxedPrecision
|
||||
OpDecorate %246 RelaxedPrecision
|
||||
OpDecorate %247 RelaxedPrecision
|
||||
OpDecorate %248 RelaxedPrecision
|
||||
OpDecorate %249 RelaxedPrecision
|
||||
OpDecorate %253 RelaxedPrecision
|
||||
OpDecorate %254 RelaxedPrecision
|
||||
OpDecorate %259 RelaxedPrecision
|
||||
OpDecorate %260 RelaxedPrecision
|
||||
OpDecorate %261 RelaxedPrecision
|
||||
OpDecorate %262 RelaxedPrecision
|
||||
OpDecorate %263 RelaxedPrecision
|
||||
OpDecorate %264 RelaxedPrecision
|
||||
OpDecorate %265 RelaxedPrecision
|
||||
OpDecorate %266 RelaxedPrecision
|
||||
OpDecorate %267 RelaxedPrecision
|
||||
OpDecorate %268 RelaxedPrecision
|
||||
OpDecorate %269 RelaxedPrecision
|
||||
OpDecorate %270 RelaxedPrecision
|
||||
OpDecorate %271 RelaxedPrecision
|
||||
OpDecorate %272 RelaxedPrecision
|
||||
OpDecorate %273 RelaxedPrecision
|
||||
OpDecorate %274 RelaxedPrecision
|
||||
OpDecorate %275 RelaxedPrecision
|
||||
OpDecorate %276 RelaxedPrecision
|
||||
OpDecorate %277 RelaxedPrecision
|
||||
OpDecorate %278 RelaxedPrecision
|
||||
OpDecorate %279 RelaxedPrecision
|
||||
OpDecorate %280 RelaxedPrecision
|
||||
OpDecorate %281 RelaxedPrecision
|
||||
OpDecorate %282 RelaxedPrecision
|
||||
OpDecorate %283 RelaxedPrecision
|
||||
OpDecorate %284 RelaxedPrecision
|
||||
OpDecorate %285 RelaxedPrecision
|
||||
OpDecorate %286 RelaxedPrecision
|
||||
OpDecorate %287 RelaxedPrecision
|
||||
OpDecorate %288 RelaxedPrecision
|
||||
OpDecorate %289 RelaxedPrecision
|
||||
OpDecorate %290 RelaxedPrecision
|
||||
OpDecorate %291 RelaxedPrecision
|
||||
OpDecorate %292 RelaxedPrecision
|
||||
OpDecorate %293 RelaxedPrecision
|
||||
OpDecorate %294 RelaxedPrecision
|
||||
OpDecorate %295 RelaxedPrecision
|
||||
OpDecorate %296 RelaxedPrecision
|
||||
OpDecorate %302 RelaxedPrecision
|
||||
OpDecorate %305 RelaxedPrecision
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
@ -239,398 +200,303 @@ OpDecorate %305 RelaxedPrecision
|
||||
%sk_Clockwise = OpVariable %_ptr_Input_bool Input
|
||||
%_UniformBuffer = OpTypeStruct %v4float %v4float
|
||||
%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
|
||||
%11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
|
||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||
%14 = OpTypeFunction %v4float %_ptr_Function_v4float %_ptr_Function_v4float %_ptr_Function_bool %_ptr_Function_bool
|
||||
%_ptr_Function_float = OpTypePointer Function %float
|
||||
%12 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
|
||||
%v3float = OpTypeVector %float 3
|
||||
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
||||
%float_0 = OpConstant %float 0
|
||||
%68 = OpConstantComposite %v3float %float_0 %float_0 %float_0
|
||||
%16 = OpTypeFunction %float %_ptr_Function_v3float
|
||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||
%37 = OpTypeFunction %v4float %_ptr_Function_v4float %_ptr_Function_v4float %_ptr_Function_bool %_ptr_Function_bool
|
||||
%_ptr_Function_float = OpTypePointer Function %float
|
||||
%float_1 = OpConstant %float 1
|
||||
%int = OpTypeInt 32 1
|
||||
%int_2 = OpConstant %int 2
|
||||
%int_1 = OpConstant %int 1
|
||||
%int_0 = OpConstant %int 0
|
||||
%float_0 = OpConstant %float 0
|
||||
%125 = OpConstantComposite %v3float %float_0 %float_0 %float_0
|
||||
%float_0_300000012 = OpConstant %float 0.300000012
|
||||
%float_0_589999974 = OpConstant %float 0.589999974
|
||||
%float_0_109999999 = OpConstant %float 0.109999999
|
||||
%196 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
|
||||
%133 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
|
||||
%false = OpConstantFalse %bool
|
||||
%void = OpTypeVoid
|
||||
%298 = OpTypeFunction %void
|
||||
%235 = OpTypeFunction %void
|
||||
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
||||
%int = OpTypeInt 32 1
|
||||
%int_0 = OpConstant %int 0
|
||||
%int_1 = OpConstant %int 1
|
||||
%true = OpConstantTrue %bool
|
||||
%blend_hslc_h4h4h4bb = OpFunction %v4float None %14
|
||||
%17 = OpFunctionParameter %_ptr_Function_v4float
|
||||
%18 = OpFunctionParameter %_ptr_Function_v4float
|
||||
%19 = OpFunctionParameter %_ptr_Function_bool
|
||||
%20 = OpFunctionParameter %_ptr_Function_bool
|
||||
%21 = OpLabel
|
||||
%blend_color_saturation_Qhh3 = OpFunction %float None %16
|
||||
%18 = OpFunctionParameter %_ptr_Function_v3float
|
||||
%19 = OpLabel
|
||||
%22 = OpLoad %v3float %18
|
||||
%23 = OpCompositeExtract %float %22 0
|
||||
%24 = OpLoad %v3float %18
|
||||
%25 = OpCompositeExtract %float %24 1
|
||||
%21 = OpExtInst %float %1 FMax %23 %25
|
||||
%26 = OpLoad %v3float %18
|
||||
%27 = OpCompositeExtract %float %26 2
|
||||
%20 = OpExtInst %float %1 FMax %21 %27
|
||||
%30 = OpLoad %v3float %18
|
||||
%31 = OpCompositeExtract %float %30 0
|
||||
%32 = OpLoad %v3float %18
|
||||
%33 = OpCompositeExtract %float %32 1
|
||||
%29 = OpExtInst %float %1 FMin %31 %33
|
||||
%34 = OpLoad %v3float %18
|
||||
%35 = OpCompositeExtract %float %34 2
|
||||
%28 = OpExtInst %float %1 FMin %29 %35
|
||||
%36 = OpFSub %float %20 %28
|
||||
OpReturnValue %36
|
||||
OpFunctionEnd
|
||||
%blend_hslc_h4h4h4bb = OpFunction %v4float None %37
|
||||
%40 = OpFunctionParameter %_ptr_Function_v4float
|
||||
%41 = OpFunctionParameter %_ptr_Function_v4float
|
||||
%42 = OpFunctionParameter %_ptr_Function_bool
|
||||
%43 = OpFunctionParameter %_ptr_Function_bool
|
||||
%44 = OpLabel
|
||||
%alpha = OpVariable %_ptr_Function_float Function
|
||||
%sda = OpVariable %_ptr_Function_v3float Function
|
||||
%dsa = OpVariable %_ptr_Function_v3float Function
|
||||
%l = OpVariable %_ptr_Function_v3float Function
|
||||
%45 = OpVariable %_ptr_Function_v3float Function
|
||||
%66 = OpVariable %_ptr_Function_v3float Function
|
||||
%r = OpVariable %_ptr_Function_v3float Function
|
||||
%54 = OpVariable %_ptr_Function_v3float Function
|
||||
%_2_hueLumColor = OpVariable %_ptr_Function_v3float Function
|
||||
%_3_midPt = OpVariable %_ptr_Function_v3float Function
|
||||
%_4_satPt = OpVariable %_ptr_Function_v3float Function
|
||||
%_5_lum = OpVariable %_ptr_Function_float Function
|
||||
%_6_result = OpVariable %_ptr_Function_v3float Function
|
||||
%_7_minComp = OpVariable %_ptr_Function_float Function
|
||||
%_8_maxComp = OpVariable %_ptr_Function_float Function
|
||||
%24 = OpLoad %v4float %18
|
||||
%25 = OpCompositeExtract %float %24 3
|
||||
%26 = OpLoad %v4float %17
|
||||
%27 = OpCompositeExtract %float %26 3
|
||||
%28 = OpFMul %float %25 %27
|
||||
OpStore %alpha %28
|
||||
%32 = OpLoad %v4float %17
|
||||
%33 = OpVectorShuffle %v3float %32 %32 0 1 2
|
||||
%34 = OpLoad %v4float %18
|
||||
%35 = OpCompositeExtract %float %34 3
|
||||
%36 = OpVectorTimesScalar %v3float %33 %35
|
||||
OpStore %sda %36
|
||||
%38 = OpLoad %v4float %18
|
||||
%39 = OpVectorShuffle %v3float %38 %38 0 1 2
|
||||
%40 = OpLoad %v4float %17
|
||||
%41 = OpCompositeExtract %float %40 3
|
||||
%42 = OpVectorTimesScalar %v3float %39 %41
|
||||
OpStore %dsa %42
|
||||
%44 = OpLoad %bool %19
|
||||
OpSelectionMerge %48 None
|
||||
OpBranchConditional %44 %46 %47
|
||||
%46 = OpLabel
|
||||
%49 = OpLoad %v3float %dsa
|
||||
OpStore %45 %49
|
||||
OpBranch %48
|
||||
%47 = OpLabel
|
||||
%50 = OpLoad %v3float %sda
|
||||
OpStore %45 %50
|
||||
OpBranch %48
|
||||
%48 = OpLabel
|
||||
%51 = OpLoad %v3float %45
|
||||
OpStore %l %51
|
||||
%53 = OpLoad %bool %19
|
||||
OpSelectionMerge %57 None
|
||||
OpBranchConditional %53 %55 %56
|
||||
%55 = OpLabel
|
||||
%58 = OpLoad %v3float %sda
|
||||
OpStore %54 %58
|
||||
OpBranch %57
|
||||
%56 = OpLabel
|
||||
%59 = OpLoad %v3float %dsa
|
||||
OpStore %54 %59
|
||||
OpBranch %57
|
||||
%57 = OpLabel
|
||||
%60 = OpLoad %v3float %54
|
||||
OpStore %r %60
|
||||
%61 = OpLoad %bool %20
|
||||
OpSelectionMerge %63 None
|
||||
OpBranchConditional %61 %62 %63
|
||||
%62 = OpLabel
|
||||
%65 = OpLoad %v3float %l
|
||||
OpStore %_2_hueLumColor %65
|
||||
OpStore %_3_midPt %68
|
||||
OpStore %_4_satPt %68
|
||||
%70 = OpLoad %v3float %_2_hueLumColor
|
||||
%71 = OpCompositeExtract %float %70 0
|
||||
%72 = OpLoad %v3float %_2_hueLumColor
|
||||
%73 = OpCompositeExtract %float %72 1
|
||||
%74 = OpFOrdLessThanEqual %bool %71 %73
|
||||
OpSelectionMerge %77 None
|
||||
OpBranchConditional %74 %75 %76
|
||||
%75 = OpLabel
|
||||
%78 = OpLoad %v3float %_2_hueLumColor
|
||||
%79 = OpCompositeExtract %float %78 1
|
||||
%80 = OpLoad %v3float %_2_hueLumColor
|
||||
%81 = OpCompositeExtract %float %80 2
|
||||
%82 = OpFOrdLessThanEqual %bool %79 %81
|
||||
OpSelectionMerge %85 None
|
||||
%75 = OpVariable %_ptr_Function_v3float Function
|
||||
%_2_mn = OpVariable %_ptr_Function_float Function
|
||||
%_3_mx = OpVariable %_ptr_Function_float Function
|
||||
%106 = OpVariable %_ptr_Function_v3float Function
|
||||
%115 = OpVariable %_ptr_Function_v3float Function
|
||||
%_4_lum = OpVariable %_ptr_Function_float Function
|
||||
%_5_result = OpVariable %_ptr_Function_v3float Function
|
||||
%_6_minComp = OpVariable %_ptr_Function_float Function
|
||||
%_7_maxComp = OpVariable %_ptr_Function_float Function
|
||||
%47 = OpLoad %v4float %41
|
||||
%48 = OpCompositeExtract %float %47 3
|
||||
%49 = OpLoad %v4float %40
|
||||
%50 = OpCompositeExtract %float %49 3
|
||||
%51 = OpFMul %float %48 %50
|
||||
OpStore %alpha %51
|
||||
%53 = OpLoad %v4float %40
|
||||
%54 = OpVectorShuffle %v3float %53 %53 0 1 2
|
||||
%55 = OpLoad %v4float %41
|
||||
%56 = OpCompositeExtract %float %55 3
|
||||
%57 = OpVectorTimesScalar %v3float %54 %56
|
||||
OpStore %sda %57
|
||||
%59 = OpLoad %v4float %41
|
||||
%60 = OpVectorShuffle %v3float %59 %59 0 1 2
|
||||
%61 = OpLoad %v4float %40
|
||||
%62 = OpCompositeExtract %float %61 3
|
||||
%63 = OpVectorTimesScalar %v3float %60 %62
|
||||
OpStore %dsa %63
|
||||
%65 = OpLoad %bool %42
|
||||
OpSelectionMerge %69 None
|
||||
OpBranchConditional %65 %67 %68
|
||||
%67 = OpLabel
|
||||
%70 = OpLoad %v3float %dsa
|
||||
OpStore %66 %70
|
||||
OpBranch %69
|
||||
%68 = OpLabel
|
||||
%71 = OpLoad %v3float %sda
|
||||
OpStore %66 %71
|
||||
OpBranch %69
|
||||
%69 = OpLabel
|
||||
%72 = OpLoad %v3float %66
|
||||
OpStore %l %72
|
||||
%74 = OpLoad %bool %42
|
||||
OpSelectionMerge %78 None
|
||||
OpBranchConditional %74 %76 %77
|
||||
%76 = OpLabel
|
||||
%79 = OpLoad %v3float %sda
|
||||
OpStore %75 %79
|
||||
OpBranch %78
|
||||
%77 = OpLabel
|
||||
%80 = OpLoad %v3float %dsa
|
||||
OpStore %75 %80
|
||||
OpBranch %78
|
||||
%78 = OpLabel
|
||||
%81 = OpLoad %v3float %75
|
||||
OpStore %r %81
|
||||
%82 = OpLoad %bool %43
|
||||
OpSelectionMerge %84 None
|
||||
OpBranchConditional %82 %83 %84
|
||||
%83 = OpLabel
|
||||
%86 = OpLoad %v3float %_2_hueLumColor
|
||||
%87 = OpLoad %v3float %_2_hueLumColor
|
||||
%88 = OpVectorShuffle %v3float %87 %87 0 0 0
|
||||
%89 = OpFSub %v3float %86 %88
|
||||
OpStore %_2_hueLumColor %89
|
||||
%91 = OpAccessChain %_ptr_Function_float %_4_satPt %int_2
|
||||
OpStore %91 %float_1
|
||||
%94 = OpAccessChain %_ptr_Function_float %_3_midPt %int_1
|
||||
OpStore %94 %float_1
|
||||
OpBranch %85
|
||||
%88 = OpLoad %v3float %l
|
||||
%89 = OpCompositeExtract %float %88 0
|
||||
%90 = OpLoad %v3float %l
|
||||
%91 = OpCompositeExtract %float %90 1
|
||||
%87 = OpExtInst %float %1 FMin %89 %91
|
||||
%92 = OpLoad %v3float %l
|
||||
%93 = OpCompositeExtract %float %92 2
|
||||
%86 = OpExtInst %float %1 FMin %87 %93
|
||||
OpStore %_2_mn %86
|
||||
%97 = OpLoad %v3float %l
|
||||
%98 = OpCompositeExtract %float %97 0
|
||||
%99 = OpLoad %v3float %l
|
||||
%100 = OpCompositeExtract %float %99 1
|
||||
%96 = OpExtInst %float %1 FMax %98 %100
|
||||
%101 = OpLoad %v3float %l
|
||||
%102 = OpCompositeExtract %float %101 2
|
||||
%95 = OpExtInst %float %1 FMax %96 %102
|
||||
OpStore %_3_mx %95
|
||||
%103 = OpLoad %float %_3_mx
|
||||
%104 = OpLoad %float %_2_mn
|
||||
%105 = OpFOrdGreaterThan %bool %103 %104
|
||||
OpSelectionMerge %109 None
|
||||
OpBranchConditional %105 %107 %108
|
||||
%107 = OpLabel
|
||||
%110 = OpLoad %v3float %l
|
||||
%111 = OpLoad %float %_2_mn
|
||||
%112 = OpCompositeConstruct %v3float %111 %111 %111
|
||||
%113 = OpFSub %v3float %110 %112
|
||||
%114 = OpLoad %v3float %r
|
||||
OpStore %115 %114
|
||||
%116 = OpFunctionCall %float %blend_color_saturation_Qhh3 %115
|
||||
%117 = OpVectorTimesScalar %v3float %113 %116
|
||||
%118 = OpLoad %float %_3_mx
|
||||
%119 = OpLoad %float %_2_mn
|
||||
%120 = OpFSub %float %118 %119
|
||||
%122 = OpFDiv %float %float_1 %120
|
||||
%123 = OpVectorTimesScalar %v3float %117 %122
|
||||
OpStore %106 %123
|
||||
OpBranch %109
|
||||
%108 = OpLabel
|
||||
OpStore %106 %125
|
||||
OpBranch %109
|
||||
%109 = OpLabel
|
||||
%126 = OpLoad %v3float %106
|
||||
OpStore %l %126
|
||||
%127 = OpLoad %v3float %dsa
|
||||
OpStore %r %127
|
||||
OpBranch %84
|
||||
%84 = OpLabel
|
||||
%96 = OpLoad %v3float %_2_hueLumColor
|
||||
%97 = OpCompositeExtract %float %96 0
|
||||
%98 = OpLoad %v3float %_2_hueLumColor
|
||||
%99 = OpCompositeExtract %float %98 2
|
||||
%100 = OpFOrdLessThanEqual %bool %97 %99
|
||||
OpSelectionMerge %103 None
|
||||
OpBranchConditional %100 %101 %102
|
||||
%101 = OpLabel
|
||||
%104 = OpLoad %v3float %_2_hueLumColor
|
||||
%105 = OpVectorShuffle %v3float %104 %104 0 2 1
|
||||
%106 = OpLoad %v3float %_2_hueLumColor
|
||||
%107 = OpVectorShuffle %v3float %106 %106 0 0 0
|
||||
%108 = OpFSub %v3float %105 %107
|
||||
OpStore %_2_hueLumColor %108
|
||||
%109 = OpAccessChain %_ptr_Function_float %_4_satPt %int_1
|
||||
OpStore %109 %float_1
|
||||
%110 = OpAccessChain %_ptr_Function_float %_3_midPt %int_2
|
||||
OpStore %110 %float_1
|
||||
OpBranch %103
|
||||
%102 = OpLabel
|
||||
%111 = OpLoad %v3float %_2_hueLumColor
|
||||
%112 = OpVectorShuffle %v3float %111 %111 2 0 1
|
||||
%113 = OpLoad %v3float %_2_hueLumColor
|
||||
%114 = OpVectorShuffle %v3float %113 %113 2 2 2
|
||||
%115 = OpFSub %v3float %112 %114
|
||||
OpStore %_2_hueLumColor %115
|
||||
%116 = OpAccessChain %_ptr_Function_float %_4_satPt %int_1
|
||||
OpStore %116 %float_1
|
||||
%117 = OpAccessChain %_ptr_Function_float %_3_midPt %int_0
|
||||
OpStore %117 %float_1
|
||||
OpBranch %103
|
||||
%103 = OpLabel
|
||||
OpBranch %85
|
||||
%85 = OpLabel
|
||||
OpBranch %77
|
||||
%76 = OpLabel
|
||||
%119 = OpLoad %v3float %_2_hueLumColor
|
||||
%120 = OpCompositeExtract %float %119 0
|
||||
%121 = OpLoad %v3float %_2_hueLumColor
|
||||
%122 = OpCompositeExtract %float %121 2
|
||||
%123 = OpFOrdLessThanEqual %bool %120 %122
|
||||
OpSelectionMerge %126 None
|
||||
OpBranchConditional %123 %124 %125
|
||||
%124 = OpLabel
|
||||
%127 = OpLoad %v3float %_2_hueLumColor
|
||||
%128 = OpVectorShuffle %v3float %127 %127 1 0 2
|
||||
%129 = OpLoad %v3float %_2_hueLumColor
|
||||
%130 = OpVectorShuffle %v3float %129 %129 1 1 1
|
||||
%131 = OpFSub %v3float %128 %130
|
||||
OpStore %_2_hueLumColor %131
|
||||
%132 = OpAccessChain %_ptr_Function_float %_4_satPt %int_2
|
||||
OpStore %132 %float_1
|
||||
%133 = OpAccessChain %_ptr_Function_float %_3_midPt %int_0
|
||||
OpStore %133 %float_1
|
||||
OpBranch %126
|
||||
%125 = OpLabel
|
||||
%134 = OpLoad %v3float %_2_hueLumColor
|
||||
%135 = OpCompositeExtract %float %134 1
|
||||
%136 = OpLoad %v3float %_2_hueLumColor
|
||||
%137 = OpCompositeExtract %float %136 2
|
||||
%138 = OpFOrdLessThanEqual %bool %135 %137
|
||||
OpSelectionMerge %141 None
|
||||
OpBranchConditional %138 %139 %140
|
||||
%139 = OpLabel
|
||||
%142 = OpLoad %v3float %_2_hueLumColor
|
||||
%143 = OpVectorShuffle %v3float %142 %142 1 2 0
|
||||
%144 = OpLoad %v3float %_2_hueLumColor
|
||||
%145 = OpVectorShuffle %v3float %144 %144 1 1 1
|
||||
%146 = OpFSub %v3float %143 %145
|
||||
OpStore %_2_hueLumColor %146
|
||||
%147 = OpAccessChain %_ptr_Function_float %_4_satPt %int_0
|
||||
OpStore %147 %float_1
|
||||
%148 = OpAccessChain %_ptr_Function_float %_3_midPt %int_2
|
||||
OpStore %148 %float_1
|
||||
OpBranch %141
|
||||
%140 = OpLabel
|
||||
%149 = OpLoad %v3float %_2_hueLumColor
|
||||
%150 = OpVectorShuffle %v3float %149 %149 2 1 0
|
||||
%151 = OpLoad %v3float %_2_hueLumColor
|
||||
%152 = OpVectorShuffle %v3float %151 %151 2 2 2
|
||||
%153 = OpFSub %v3float %150 %152
|
||||
OpStore %_2_hueLumColor %153
|
||||
%154 = OpAccessChain %_ptr_Function_float %_4_satPt %int_0
|
||||
OpStore %154 %float_1
|
||||
%155 = OpAccessChain %_ptr_Function_float %_3_midPt %int_1
|
||||
OpStore %155 %float_1
|
||||
OpBranch %141
|
||||
%141 = OpLabel
|
||||
OpBranch %126
|
||||
%126 = OpLabel
|
||||
OpBranch %77
|
||||
%77 = OpLabel
|
||||
%156 = OpLoad %v3float %_2_hueLumColor
|
||||
%157 = OpCompositeExtract %float %156 2
|
||||
%158 = OpFOrdGreaterThan %bool %157 %float_0
|
||||
OpSelectionMerge %160 None
|
||||
OpBranchConditional %158 %159 %160
|
||||
%159 = OpLabel
|
||||
%161 = OpLoad %v3float %_3_midPt
|
||||
%162 = OpLoad %v3float %_2_hueLumColor
|
||||
%163 = OpCompositeExtract %float %162 1
|
||||
%164 = OpLoad %v3float %_2_hueLumColor
|
||||
%165 = OpCompositeExtract %float %164 2
|
||||
%166 = OpFDiv %float %163 %165
|
||||
%167 = OpVectorTimesScalar %v3float %161 %166
|
||||
OpStore %_3_midPt %167
|
||||
%168 = OpLoad %v3float %_3_midPt
|
||||
%169 = OpLoad %v3float %_4_satPt
|
||||
%170 = OpFAdd %v3float %168 %169
|
||||
%173 = OpLoad %v3float %r
|
||||
%174 = OpCompositeExtract %float %173 0
|
||||
%175 = OpLoad %v3float %r
|
||||
%176 = OpCompositeExtract %float %175 1
|
||||
%172 = OpExtInst %float %1 FMax %174 %176
|
||||
%177 = OpLoad %v3float %r
|
||||
%178 = OpCompositeExtract %float %177 2
|
||||
%171 = OpExtInst %float %1 FMax %172 %178
|
||||
%181 = OpLoad %v3float %r
|
||||
%182 = OpCompositeExtract %float %181 0
|
||||
%183 = OpLoad %v3float %r
|
||||
%184 = OpCompositeExtract %float %183 1
|
||||
%180 = OpExtInst %float %1 FMin %182 %184
|
||||
%185 = OpLoad %v3float %r
|
||||
%186 = OpCompositeExtract %float %185 2
|
||||
%179 = OpExtInst %float %1 FMin %180 %186
|
||||
%187 = OpFSub %float %171 %179
|
||||
%188 = OpVectorTimesScalar %v3float %170 %187
|
||||
OpStore %_2_hueLumColor %188
|
||||
OpBranch %160
|
||||
%160 = OpLabel
|
||||
%189 = OpLoad %v3float %_2_hueLumColor
|
||||
OpStore %l %189
|
||||
%190 = OpLoad %v3float %dsa
|
||||
OpStore %r %190
|
||||
OpBranch %63
|
||||
%63 = OpLabel
|
||||
%197 = OpLoad %v3float %r
|
||||
%192 = OpDot %float %196 %197
|
||||
OpStore %_5_lum %192
|
||||
%199 = OpLoad %float %_5_lum
|
||||
%201 = OpLoad %v3float %l
|
||||
%200 = OpDot %float %196 %201
|
||||
%202 = OpFSub %float %199 %200
|
||||
%203 = OpLoad %v3float %l
|
||||
%204 = OpCompositeConstruct %v3float %202 %202 %202
|
||||
%205 = OpFAdd %v3float %204 %203
|
||||
OpStore %_6_result %205
|
||||
%209 = OpLoad %v3float %_6_result
|
||||
%210 = OpCompositeExtract %float %209 0
|
||||
%211 = OpLoad %v3float %_6_result
|
||||
%212 = OpCompositeExtract %float %211 1
|
||||
%208 = OpExtInst %float %1 FMin %210 %212
|
||||
%213 = OpLoad %v3float %_6_result
|
||||
%214 = OpCompositeExtract %float %213 2
|
||||
%207 = OpExtInst %float %1 FMin %208 %214
|
||||
OpStore %_7_minComp %207
|
||||
%218 = OpLoad %v3float %_6_result
|
||||
%219 = OpCompositeExtract %float %218 0
|
||||
%220 = OpLoad %v3float %_6_result
|
||||
%221 = OpCompositeExtract %float %220 1
|
||||
%217 = OpExtInst %float %1 FMax %219 %221
|
||||
%222 = OpLoad %v3float %_6_result
|
||||
%223 = OpCompositeExtract %float %222 2
|
||||
%216 = OpExtInst %float %1 FMax %217 %223
|
||||
OpStore %_8_maxComp %216
|
||||
%225 = OpLoad %float %_7_minComp
|
||||
%226 = OpFOrdLessThan %bool %225 %float_0
|
||||
OpSelectionMerge %228 None
|
||||
OpBranchConditional %226 %227 %228
|
||||
%227 = OpLabel
|
||||
%229 = OpLoad %float %_5_lum
|
||||
%230 = OpLoad %float %_7_minComp
|
||||
%231 = OpFUnordNotEqual %bool %229 %230
|
||||
OpBranch %228
|
||||
%228 = OpLabel
|
||||
%232 = OpPhi %bool %false %63 %231 %227
|
||||
OpSelectionMerge %234 None
|
||||
OpBranchConditional %232 %233 %234
|
||||
%233 = OpLabel
|
||||
%235 = OpLoad %float %_5_lum
|
||||
%236 = OpLoad %v3float %_6_result
|
||||
%237 = OpLoad %float %_5_lum
|
||||
%238 = OpCompositeConstruct %v3float %237 %237 %237
|
||||
%239 = OpFSub %v3float %236 %238
|
||||
%240 = OpLoad %float %_5_lum
|
||||
%241 = OpLoad %float %_5_lum
|
||||
%242 = OpLoad %float %_7_minComp
|
||||
%243 = OpFSub %float %241 %242
|
||||
%244 = OpFDiv %float %240 %243
|
||||
%245 = OpVectorTimesScalar %v3float %239 %244
|
||||
%246 = OpCompositeConstruct %v3float %235 %235 %235
|
||||
%247 = OpFAdd %v3float %246 %245
|
||||
OpStore %_6_result %247
|
||||
OpBranch %234
|
||||
%234 = OpLabel
|
||||
%248 = OpLoad %float %_8_maxComp
|
||||
%249 = OpLoad %float %alpha
|
||||
%250 = OpFOrdGreaterThan %bool %248 %249
|
||||
OpSelectionMerge %252 None
|
||||
OpBranchConditional %250 %251 %252
|
||||
%251 = OpLabel
|
||||
%253 = OpLoad %float %_8_maxComp
|
||||
%254 = OpLoad %float %_5_lum
|
||||
%255 = OpFUnordNotEqual %bool %253 %254
|
||||
OpBranch %252
|
||||
%252 = OpLabel
|
||||
%256 = OpPhi %bool %false %234 %255 %251
|
||||
OpSelectionMerge %258 None
|
||||
OpBranchConditional %256 %257 %258
|
||||
%257 = OpLabel
|
||||
%259 = OpLoad %float %_5_lum
|
||||
%260 = OpLoad %v3float %_6_result
|
||||
%261 = OpLoad %float %_5_lum
|
||||
%262 = OpCompositeConstruct %v3float %261 %261 %261
|
||||
%263 = OpFSub %v3float %260 %262
|
||||
%264 = OpLoad %float %alpha
|
||||
%265 = OpLoad %float %_5_lum
|
||||
%266 = OpFSub %float %264 %265
|
||||
%267 = OpVectorTimesScalar %v3float %263 %266
|
||||
%268 = OpLoad %float %_8_maxComp
|
||||
%269 = OpLoad %float %_5_lum
|
||||
%270 = OpFSub %float %268 %269
|
||||
%271 = OpFDiv %float %float_1 %270
|
||||
%272 = OpVectorTimesScalar %v3float %267 %271
|
||||
%273 = OpCompositeConstruct %v3float %259 %259 %259
|
||||
%274 = OpFAdd %v3float %273 %272
|
||||
OpStore %_6_result %274
|
||||
OpBranch %258
|
||||
%258 = OpLabel
|
||||
%275 = OpLoad %v3float %_6_result
|
||||
%276 = OpLoad %v4float %18
|
||||
%277 = OpVectorShuffle %v3float %276 %276 0 1 2
|
||||
%278 = OpFAdd %v3float %275 %277
|
||||
%279 = OpLoad %v3float %dsa
|
||||
%280 = OpFSub %v3float %278 %279
|
||||
%281 = OpLoad %v4float %17
|
||||
%282 = OpVectorShuffle %v3float %281 %281 0 1 2
|
||||
%283 = OpFAdd %v3float %280 %282
|
||||
%284 = OpLoad %v3float %sda
|
||||
%285 = OpFSub %v3float %283 %284
|
||||
%286 = OpCompositeExtract %float %285 0
|
||||
%287 = OpCompositeExtract %float %285 1
|
||||
%288 = OpCompositeExtract %float %285 2
|
||||
%289 = OpLoad %v4float %17
|
||||
%290 = OpCompositeExtract %float %289 3
|
||||
%291 = OpLoad %v4float %18
|
||||
%292 = OpCompositeExtract %float %291 3
|
||||
%293 = OpFAdd %float %290 %292
|
||||
%294 = OpLoad %float %alpha
|
||||
%295 = OpFSub %float %293 %294
|
||||
%296 = OpCompositeConstruct %v4float %286 %287 %288 %295
|
||||
OpReturnValue %296
|
||||
%134 = OpLoad %v3float %r
|
||||
%129 = OpDot %float %133 %134
|
||||
OpStore %_4_lum %129
|
||||
%136 = OpLoad %float %_4_lum
|
||||
%138 = OpLoad %v3float %l
|
||||
%137 = OpDot %float %133 %138
|
||||
%139 = OpFSub %float %136 %137
|
||||
%140 = OpLoad %v3float %l
|
||||
%141 = OpCompositeConstruct %v3float %139 %139 %139
|
||||
%142 = OpFAdd %v3float %141 %140
|
||||
OpStore %_5_result %142
|
||||
%146 = OpLoad %v3float %_5_result
|
||||
%147 = OpCompositeExtract %float %146 0
|
||||
%148 = OpLoad %v3float %_5_result
|
||||
%149 = OpCompositeExtract %float %148 1
|
||||
%145 = OpExtInst %float %1 FMin %147 %149
|
||||
%150 = OpLoad %v3float %_5_result
|
||||
%151 = OpCompositeExtract %float %150 2
|
||||
%144 = OpExtInst %float %1 FMin %145 %151
|
||||
OpStore %_6_minComp %144
|
||||
%155 = OpLoad %v3float %_5_result
|
||||
%156 = OpCompositeExtract %float %155 0
|
||||
%157 = OpLoad %v3float %_5_result
|
||||
%158 = OpCompositeExtract %float %157 1
|
||||
%154 = OpExtInst %float %1 FMax %156 %158
|
||||
%159 = OpLoad %v3float %_5_result
|
||||
%160 = OpCompositeExtract %float %159 2
|
||||
%153 = OpExtInst %float %1 FMax %154 %160
|
||||
OpStore %_7_maxComp %153
|
||||
%162 = OpLoad %float %_6_minComp
|
||||
%163 = OpFOrdLessThan %bool %162 %float_0
|
||||
OpSelectionMerge %165 None
|
||||
OpBranchConditional %163 %164 %165
|
||||
%164 = OpLabel
|
||||
%166 = OpLoad %float %_4_lum
|
||||
%167 = OpLoad %float %_6_minComp
|
||||
%168 = OpFUnordNotEqual %bool %166 %167
|
||||
OpBranch %165
|
||||
%165 = OpLabel
|
||||
%169 = OpPhi %bool %false %84 %168 %164
|
||||
OpSelectionMerge %171 None
|
||||
OpBranchConditional %169 %170 %171
|
||||
%170 = OpLabel
|
||||
%172 = OpLoad %float %_4_lum
|
||||
%173 = OpLoad %v3float %_5_result
|
||||
%174 = OpLoad %float %_4_lum
|
||||
%175 = OpCompositeConstruct %v3float %174 %174 %174
|
||||
%176 = OpFSub %v3float %173 %175
|
||||
%177 = OpLoad %float %_4_lum
|
||||
%178 = OpLoad %float %_4_lum
|
||||
%179 = OpLoad %float %_6_minComp
|
||||
%180 = OpFSub %float %178 %179
|
||||
%181 = OpFDiv %float %177 %180
|
||||
%182 = OpVectorTimesScalar %v3float %176 %181
|
||||
%183 = OpCompositeConstruct %v3float %172 %172 %172
|
||||
%184 = OpFAdd %v3float %183 %182
|
||||
OpStore %_5_result %184
|
||||
OpBranch %171
|
||||
%171 = OpLabel
|
||||
%185 = OpLoad %float %_7_maxComp
|
||||
%186 = OpLoad %float %alpha
|
||||
%187 = OpFOrdGreaterThan %bool %185 %186
|
||||
OpSelectionMerge %189 None
|
||||
OpBranchConditional %187 %188 %189
|
||||
%188 = OpLabel
|
||||
%190 = OpLoad %float %_7_maxComp
|
||||
%191 = OpLoad %float %_4_lum
|
||||
%192 = OpFUnordNotEqual %bool %190 %191
|
||||
OpBranch %189
|
||||
%189 = OpLabel
|
||||
%193 = OpPhi %bool %false %171 %192 %188
|
||||
OpSelectionMerge %195 None
|
||||
OpBranchConditional %193 %194 %195
|
||||
%194 = OpLabel
|
||||
%196 = OpLoad %float %_4_lum
|
||||
%197 = OpLoad %v3float %_5_result
|
||||
%198 = OpLoad %float %_4_lum
|
||||
%199 = OpCompositeConstruct %v3float %198 %198 %198
|
||||
%200 = OpFSub %v3float %197 %199
|
||||
%201 = OpLoad %float %alpha
|
||||
%202 = OpLoad %float %_4_lum
|
||||
%203 = OpFSub %float %201 %202
|
||||
%204 = OpVectorTimesScalar %v3float %200 %203
|
||||
%205 = OpLoad %float %_7_maxComp
|
||||
%206 = OpLoad %float %_4_lum
|
||||
%207 = OpFSub %float %205 %206
|
||||
%208 = OpFDiv %float %float_1 %207
|
||||
%209 = OpVectorTimesScalar %v3float %204 %208
|
||||
%210 = OpCompositeConstruct %v3float %196 %196 %196
|
||||
%211 = OpFAdd %v3float %210 %209
|
||||
OpStore %_5_result %211
|
||||
OpBranch %195
|
||||
%195 = OpLabel
|
||||
%212 = OpLoad %v3float %_5_result
|
||||
%213 = OpLoad %v4float %41
|
||||
%214 = OpVectorShuffle %v3float %213 %213 0 1 2
|
||||
%215 = OpFAdd %v3float %212 %214
|
||||
%216 = OpLoad %v3float %dsa
|
||||
%217 = OpFSub %v3float %215 %216
|
||||
%218 = OpLoad %v4float %40
|
||||
%219 = OpVectorShuffle %v3float %218 %218 0 1 2
|
||||
%220 = OpFAdd %v3float %217 %219
|
||||
%221 = OpLoad %v3float %sda
|
||||
%222 = OpFSub %v3float %220 %221
|
||||
%223 = OpCompositeExtract %float %222 0
|
||||
%224 = OpCompositeExtract %float %222 1
|
||||
%225 = OpCompositeExtract %float %222 2
|
||||
%226 = OpLoad %v4float %40
|
||||
%227 = OpCompositeExtract %float %226 3
|
||||
%228 = OpLoad %v4float %41
|
||||
%229 = OpCompositeExtract %float %228 3
|
||||
%230 = OpFAdd %float %227 %229
|
||||
%231 = OpLoad %float %alpha
|
||||
%232 = OpFSub %float %230 %231
|
||||
%233 = OpCompositeConstruct %v4float %223 %224 %225 %232
|
||||
OpReturnValue %233
|
||||
OpFunctionEnd
|
||||
%main = OpFunction %void None %298
|
||||
%299 = OpLabel
|
||||
%303 = OpVariable %_ptr_Function_v4float Function
|
||||
%306 = OpVariable %_ptr_Function_v4float Function
|
||||
%307 = OpVariable %_ptr_Function_bool Function
|
||||
%309 = OpVariable %_ptr_Function_bool Function
|
||||
%300 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0
|
||||
%302 = OpLoad %v4float %300
|
||||
OpStore %303 %302
|
||||
%304 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1
|
||||
%305 = OpLoad %v4float %304
|
||||
OpStore %306 %305
|
||||
OpStore %307 %false
|
||||
OpStore %309 %true
|
||||
%310 = OpFunctionCall %v4float %blend_hslc_h4h4h4bb %303 %306 %307 %309
|
||||
OpStore %sk_FragColor %310
|
||||
%main = OpFunction %void None %235
|
||||
%236 = OpLabel
|
||||
%242 = OpVariable %_ptr_Function_v4float Function
|
||||
%246 = OpVariable %_ptr_Function_v4float Function
|
||||
%247 = OpVariable %_ptr_Function_bool Function
|
||||
%249 = OpVariable %_ptr_Function_bool Function
|
||||
%237 = OpAccessChain %_ptr_Uniform_v4float %12 %int_0
|
||||
%241 = OpLoad %v4float %237
|
||||
OpStore %242 %241
|
||||
%243 = OpAccessChain %_ptr_Uniform_v4float %12 %int_1
|
||||
%245 = OpLoad %v4float %243
|
||||
OpStore %246 %245
|
||||
OpStore %247 %false
|
||||
OpStore %249 %true
|
||||
%250 = OpFunctionCall %v4float %blend_hslc_h4h4h4bb %242 %246 %247 %249
|
||||
OpStore %sk_FragColor %250
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
@ -2,6 +2,9 @@
|
||||
out vec4 sk_FragColor;
|
||||
uniform vec4 src;
|
||||
uniform vec4 dst;
|
||||
float blend_color_saturation_Qhh3(vec3 color) {
|
||||
return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z);
|
||||
}
|
||||
vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) {
|
||||
float alpha = dst.w * src.w;
|
||||
vec3 sda = src.xyz * dst.w;
|
||||
@ -9,48 +12,22 @@ vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) {
|
||||
vec3 l = flip ? dsa : sda;
|
||||
vec3 r = flip ? sda : dsa;
|
||||
if (saturate) {
|
||||
vec3 _2_hueLumColor = l;
|
||||
vec3 _3_midPt = vec3(0.0);
|
||||
vec3 _4_satPt = vec3(0.0);
|
||||
if (_2_hueLumColor.x <= _2_hueLumColor.y) {
|
||||
if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor -= _2_hueLumColor.xxx;
|
||||
_3_midPt.y = (_4_satPt.z = 1.0);
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.xzy - _2_hueLumColor.xxx;
|
||||
_3_midPt.z = (_4_satPt.y = 1.0);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zxy - _2_hueLumColor.zzz;
|
||||
_3_midPt.x = (_4_satPt.y = 1.0);
|
||||
}
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yxz - _2_hueLumColor.yyy;
|
||||
_3_midPt.x = (_4_satPt.z = 1.0);
|
||||
} else if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yzx - _2_hueLumColor.yyy;
|
||||
_3_midPt.z = (_4_satPt.x = 1.0);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zyx - _2_hueLumColor.zzz;
|
||||
_3_midPt.y = (_4_satPt.x = 1.0);
|
||||
}
|
||||
if (_2_hueLumColor.z > 0.0) {
|
||||
_3_midPt *= _2_hueLumColor.y / _2_hueLumColor.z;
|
||||
_2_hueLumColor = (_3_midPt + _4_satPt) * (max(max(r.x, r.y), r.z) - min(min(r.x, r.y), r.z));
|
||||
}
|
||||
l = _2_hueLumColor;
|
||||
float _2_mn = min(min(l.x, l.y), l.z);
|
||||
float _3_mx = max(max(l.x, l.y), l.z);
|
||||
l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : vec3(0.0);
|
||||
r = dsa;
|
||||
}
|
||||
float _5_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r);
|
||||
vec3 _6_result = (_5_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l;
|
||||
float _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
|
||||
float _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
|
||||
if (_7_minComp < 0.0 && _5_lum != _7_minComp) {
|
||||
_6_result = _5_lum + (_6_result - _5_lum) * (_5_lum / (_5_lum - _7_minComp));
|
||||
float _4_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r);
|
||||
vec3 _5_result = (_4_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l;
|
||||
float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z);
|
||||
float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z);
|
||||
if (_6_minComp < 0.0 && _4_lum != _6_minComp) {
|
||||
_5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp));
|
||||
}
|
||||
if (_8_maxComp > alpha && _8_maxComp != _5_lum) {
|
||||
_6_result = _5_lum + ((_6_result - _5_lum) * (alpha - _5_lum)) / (_8_maxComp - _5_lum);
|
||||
if (_7_maxComp > alpha && _7_maxComp != _4_lum) {
|
||||
_5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum);
|
||||
}
|
||||
return vec4((((_6_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
}
|
||||
void main() {
|
||||
sk_FragColor = blend_hslc_h4h4h4bb(src, dst, false, true);
|
||||
|
@ -10,6 +10,9 @@ struct Inputs {
|
||||
struct Outputs {
|
||||
half4 sk_FragColor [[color(0)]];
|
||||
};
|
||||
half blend_color_saturation_Qhh3(half3 color) {
|
||||
return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z);
|
||||
}
|
||||
half4 blend_hslc_h4h4h4bb(half4 src, half4 dst, bool flip, bool saturate) {
|
||||
half alpha = dst.w * src.w;
|
||||
half3 sda = src.xyz * dst.w;
|
||||
@ -17,48 +20,22 @@ half4 blend_hslc_h4h4h4bb(half4 src, half4 dst, bool flip, bool saturate) {
|
||||
half3 l = flip ? dsa : sda;
|
||||
half3 r = flip ? sda : dsa;
|
||||
if (saturate) {
|
||||
half3 _2_hueLumColor = l;
|
||||
half3 _3_midPt = half3(0.0h);
|
||||
half3 _4_satPt = half3(0.0h);
|
||||
if (_2_hueLumColor.x <= _2_hueLumColor.y) {
|
||||
if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor -= _2_hueLumColor.xxx;
|
||||
_3_midPt.y = (_4_satPt.z = 1.0h);
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.xzy - _2_hueLumColor.xxx;
|
||||
_3_midPt.z = (_4_satPt.y = 1.0h);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zxy - _2_hueLumColor.zzz;
|
||||
_3_midPt.x = (_4_satPt.y = 1.0h);
|
||||
}
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yxz - _2_hueLumColor.yyy;
|
||||
_3_midPt.x = (_4_satPt.z = 1.0h);
|
||||
} else if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yzx - _2_hueLumColor.yyy;
|
||||
_3_midPt.z = (_4_satPt.x = 1.0h);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zyx - _2_hueLumColor.zzz;
|
||||
_3_midPt.y = (_4_satPt.x = 1.0h);
|
||||
}
|
||||
if (_2_hueLumColor.z > 0.0h) {
|
||||
_3_midPt *= _2_hueLumColor.y / _2_hueLumColor.z;
|
||||
_2_hueLumColor = (_3_midPt + _4_satPt) * (max(max(r.x, r.y), r.z) - min(min(r.x, r.y), r.z));
|
||||
}
|
||||
l = _2_hueLumColor;
|
||||
half _2_mn = min(min(l.x, l.y), l.z);
|
||||
half _3_mx = max(max(l.x, l.y), l.z);
|
||||
l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : half3(0.0h);
|
||||
r = dsa;
|
||||
}
|
||||
half _5_lum = dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), r);
|
||||
half3 _6_result = (_5_lum - dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), l)) + l;
|
||||
half _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
|
||||
half _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
|
||||
if (_7_minComp < 0.0h && _5_lum != _7_minComp) {
|
||||
_6_result = _5_lum + (_6_result - _5_lum) * (_5_lum / (_5_lum - _7_minComp));
|
||||
half _4_lum = dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), r);
|
||||
half3 _5_result = (_4_lum - dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), l)) + l;
|
||||
half _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z);
|
||||
half _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z);
|
||||
if (_6_minComp < 0.0h && _4_lum != _6_minComp) {
|
||||
_5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp));
|
||||
}
|
||||
if (_8_maxComp > alpha && _8_maxComp != _5_lum) {
|
||||
_6_result = _5_lum + ((_6_result - _5_lum) * (alpha - _5_lum)) / (_8_maxComp - _5_lum);
|
||||
if (_7_maxComp > alpha && _7_maxComp != _4_lum) {
|
||||
_5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum);
|
||||
}
|
||||
return half4((((_6_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
return half4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
}
|
||||
fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
|
||||
Outputs _out;
|
||||
|
@ -2,6 +2,9 @@
|
||||
out vec4 sk_FragColor;
|
||||
uniform vec4 src;
|
||||
uniform vec4 dst;
|
||||
float blend_color_saturation_Qhh3(vec3 color) {
|
||||
return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z);
|
||||
}
|
||||
vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) {
|
||||
float alpha = dst.w * src.w;
|
||||
vec3 sda = src.xyz * dst.w;
|
||||
@ -9,48 +12,22 @@ vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) {
|
||||
vec3 l = flip ? dsa : sda;
|
||||
vec3 r = flip ? sda : dsa;
|
||||
if (saturate) {
|
||||
vec3 _2_hueLumColor = l;
|
||||
vec3 _3_midPt = vec3(0.0);
|
||||
vec3 _4_satPt = vec3(0.0);
|
||||
if (_2_hueLumColor.x <= _2_hueLumColor.y) {
|
||||
if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor -= _2_hueLumColor.xxx;
|
||||
_3_midPt.y = (_4_satPt.z = 1.0);
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.xzy - _2_hueLumColor.xxx;
|
||||
_3_midPt.z = (_4_satPt.y = 1.0);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zxy - _2_hueLumColor.zzz;
|
||||
_3_midPt.x = (_4_satPt.y = 1.0);
|
||||
}
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yxz - _2_hueLumColor.yyy;
|
||||
_3_midPt.x = (_4_satPt.z = 1.0);
|
||||
} else if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yzx - _2_hueLumColor.yyy;
|
||||
_3_midPt.z = (_4_satPt.x = 1.0);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zyx - _2_hueLumColor.zzz;
|
||||
_3_midPt.y = (_4_satPt.x = 1.0);
|
||||
}
|
||||
if (_2_hueLumColor.z > 0.0) {
|
||||
_3_midPt *= _2_hueLumColor.y / _2_hueLumColor.z;
|
||||
_2_hueLumColor = (_3_midPt + _4_satPt) * (max(max(r.x, r.y), r.z) - min(min(r.x, r.y), r.z));
|
||||
}
|
||||
l = _2_hueLumColor;
|
||||
float _2_mn = min(min(l.x, l.y), l.z);
|
||||
float _3_mx = max(max(l.x, l.y), l.z);
|
||||
l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : vec3(0.0);
|
||||
r = dsa;
|
||||
}
|
||||
float _5_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r);
|
||||
vec3 _6_result = (_5_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l;
|
||||
float _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
|
||||
float _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
|
||||
if (_7_minComp < 0.0 && _5_lum != _7_minComp) {
|
||||
_6_result = _5_lum + (_6_result - _5_lum) * (_5_lum / (_5_lum - _7_minComp));
|
||||
float _4_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r);
|
||||
vec3 _5_result = (_4_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l;
|
||||
float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z);
|
||||
float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z);
|
||||
if (_6_minComp < 0.0 && _4_lum != _6_minComp) {
|
||||
_5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp));
|
||||
}
|
||||
if (_8_maxComp > alpha && _8_maxComp != _5_lum) {
|
||||
_6_result = _5_lum + ((_6_result - _5_lum) * (alpha - _5_lum)) / (_8_maxComp - _5_lum);
|
||||
if (_7_maxComp > alpha && _7_maxComp != _4_lum) {
|
||||
_5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum);
|
||||
}
|
||||
return vec4((((_6_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
}
|
||||
void main() {
|
||||
sk_FragColor = blend_hslc_h4h4h4bb(src, dst, false, true);
|
||||
|
@ -8,19 +8,19 @@ OpName %sk_Clockwise "sk_Clockwise"
|
||||
OpName %_UniformBuffer "_UniformBuffer"
|
||||
OpMemberName %_UniformBuffer 0 "src"
|
||||
OpMemberName %_UniformBuffer 1 "dst"
|
||||
OpName %blend_color_saturation_Qhh3 "blend_color_saturation_Qhh3"
|
||||
OpName %blend_hslc_h4h4h4bb "blend_hslc_h4h4h4bb"
|
||||
OpName %alpha "alpha"
|
||||
OpName %sda "sda"
|
||||
OpName %dsa "dsa"
|
||||
OpName %l "l"
|
||||
OpName %r "r"
|
||||
OpName %_2_hueLumColor "_2_hueLumColor"
|
||||
OpName %_3_midPt "_3_midPt"
|
||||
OpName %_4_satPt "_4_satPt"
|
||||
OpName %_5_lum "_5_lum"
|
||||
OpName %_6_result "_6_result"
|
||||
OpName %_7_minComp "_7_minComp"
|
||||
OpName %_8_maxComp "_8_maxComp"
|
||||
OpName %_2_mn "_2_mn"
|
||||
OpName %_3_mx "_3_mx"
|
||||
OpName %_4_lum "_4_lum"
|
||||
OpName %_5_result "_5_result"
|
||||
OpName %_6_minComp "_6_minComp"
|
||||
OpName %_7_maxComp "_7_maxComp"
|
||||
OpName %main "main"
|
||||
OpDecorate %sk_FragColor RelaxedPrecision
|
||||
OpDecorate %sk_FragColor Location 0
|
||||
@ -31,124 +31,129 @@ OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
|
||||
OpMemberDecorate %_UniformBuffer 1 Offset 16
|
||||
OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
|
||||
OpDecorate %_UniformBuffer Block
|
||||
OpDecorate %11 Binding 0
|
||||
OpDecorate %11 DescriptorSet 0
|
||||
OpDecorate %alpha RelaxedPrecision
|
||||
OpDecorate %12 Binding 0
|
||||
OpDecorate %12 DescriptorSet 0
|
||||
OpDecorate %22 RelaxedPrecision
|
||||
OpDecorate %23 RelaxedPrecision
|
||||
OpDecorate %24 RelaxedPrecision
|
||||
OpDecorate %25 RelaxedPrecision
|
||||
OpDecorate %26 RelaxedPrecision
|
||||
OpDecorate %27 RelaxedPrecision
|
||||
OpDecorate %28 RelaxedPrecision
|
||||
OpDecorate %sda RelaxedPrecision
|
||||
OpDecorate %30 RelaxedPrecision
|
||||
OpDecorate %31 RelaxedPrecision
|
||||
OpDecorate %32 RelaxedPrecision
|
||||
OpDecorate %33 RelaxedPrecision
|
||||
OpDecorate %34 RelaxedPrecision
|
||||
OpDecorate %35 RelaxedPrecision
|
||||
OpDecorate %36 RelaxedPrecision
|
||||
OpDecorate %dsa RelaxedPrecision
|
||||
OpDecorate %38 RelaxedPrecision
|
||||
OpDecorate %39 RelaxedPrecision
|
||||
OpDecorate %40 RelaxedPrecision
|
||||
OpDecorate %41 RelaxedPrecision
|
||||
OpDecorate %42 RelaxedPrecision
|
||||
OpDecorate %l RelaxedPrecision
|
||||
OpDecorate %44 RelaxedPrecision
|
||||
OpDecorate %alpha RelaxedPrecision
|
||||
OpDecorate %47 RelaxedPrecision
|
||||
OpDecorate %48 RelaxedPrecision
|
||||
OpDecorate %49 RelaxedPrecision
|
||||
OpDecorate %50 RelaxedPrecision
|
||||
OpDecorate %51 RelaxedPrecision
|
||||
OpDecorate %r RelaxedPrecision
|
||||
OpDecorate %sda RelaxedPrecision
|
||||
OpDecorate %53 RelaxedPrecision
|
||||
OpDecorate %58 RelaxedPrecision
|
||||
OpDecorate %54 RelaxedPrecision
|
||||
OpDecorate %55 RelaxedPrecision
|
||||
OpDecorate %56 RelaxedPrecision
|
||||
OpDecorate %57 RelaxedPrecision
|
||||
OpDecorate %dsa RelaxedPrecision
|
||||
OpDecorate %59 RelaxedPrecision
|
||||
OpDecorate %60 RelaxedPrecision
|
||||
OpDecorate %61 RelaxedPrecision
|
||||
OpDecorate %_2_hueLumColor RelaxedPrecision
|
||||
OpDecorate %62 RelaxedPrecision
|
||||
OpDecorate %63 RelaxedPrecision
|
||||
OpDecorate %l RelaxedPrecision
|
||||
OpDecorate %65 RelaxedPrecision
|
||||
OpDecorate %_3_midPt RelaxedPrecision
|
||||
OpDecorate %68 RelaxedPrecision
|
||||
OpDecorate %_4_satPt RelaxedPrecision
|
||||
OpDecorate %70 RelaxedPrecision
|
||||
OpDecorate %71 RelaxedPrecision
|
||||
OpDecorate %72 RelaxedPrecision
|
||||
OpDecorate %73 RelaxedPrecision
|
||||
OpDecorate %78 RelaxedPrecision
|
||||
OpDecorate %r RelaxedPrecision
|
||||
OpDecorate %74 RelaxedPrecision
|
||||
OpDecorate %79 RelaxedPrecision
|
||||
OpDecorate %80 RelaxedPrecision
|
||||
OpDecorate %81 RelaxedPrecision
|
||||
OpDecorate %86 RelaxedPrecision
|
||||
OpDecorate %87 RelaxedPrecision
|
||||
OpDecorate %82 RelaxedPrecision
|
||||
OpDecorate %_2_mn RelaxedPrecision
|
||||
OpDecorate %88 RelaxedPrecision
|
||||
OpDecorate %89 RelaxedPrecision
|
||||
OpDecorate %96 RelaxedPrecision
|
||||
OpDecorate %90 RelaxedPrecision
|
||||
OpDecorate %91 RelaxedPrecision
|
||||
OpDecorate %92 RelaxedPrecision
|
||||
OpDecorate %93 RelaxedPrecision
|
||||
OpDecorate %_3_mx RelaxedPrecision
|
||||
OpDecorate %97 RelaxedPrecision
|
||||
OpDecorate %98 RelaxedPrecision
|
||||
OpDecorate %99 RelaxedPrecision
|
||||
OpDecorate %100 RelaxedPrecision
|
||||
OpDecorate %101 RelaxedPrecision
|
||||
OpDecorate %102 RelaxedPrecision
|
||||
OpDecorate %103 RelaxedPrecision
|
||||
OpDecorate %104 RelaxedPrecision
|
||||
OpDecorate %105 RelaxedPrecision
|
||||
OpDecorate %106 RelaxedPrecision
|
||||
OpDecorate %107 RelaxedPrecision
|
||||
OpDecorate %108 RelaxedPrecision
|
||||
OpDecorate %110 RelaxedPrecision
|
||||
OpDecorate %111 RelaxedPrecision
|
||||
OpDecorate %112 RelaxedPrecision
|
||||
OpDecorate %113 RelaxedPrecision
|
||||
OpDecorate %114 RelaxedPrecision
|
||||
OpDecorate %115 RelaxedPrecision
|
||||
OpDecorate %117 RelaxedPrecision
|
||||
OpDecorate %118 RelaxedPrecision
|
||||
OpDecorate %119 RelaxedPrecision
|
||||
OpDecorate %120 RelaxedPrecision
|
||||
OpDecorate %121 RelaxedPrecision
|
||||
OpDecorate %122 RelaxedPrecision
|
||||
OpDecorate %123 RelaxedPrecision
|
||||
OpDecorate %125 RelaxedPrecision
|
||||
OpDecorate %126 RelaxedPrecision
|
||||
OpDecorate %127 RelaxedPrecision
|
||||
OpDecorate %128 RelaxedPrecision
|
||||
OpDecorate %_4_lum RelaxedPrecision
|
||||
OpDecorate %129 RelaxedPrecision
|
||||
OpDecorate %130 RelaxedPrecision
|
||||
OpDecorate %131 RelaxedPrecision
|
||||
OpDecorate %133 RelaxedPrecision
|
||||
OpDecorate %134 RelaxedPrecision
|
||||
OpDecorate %135 RelaxedPrecision
|
||||
OpDecorate %_5_result RelaxedPrecision
|
||||
OpDecorate %136 RelaxedPrecision
|
||||
OpDecorate %137 RelaxedPrecision
|
||||
OpDecorate %138 RelaxedPrecision
|
||||
OpDecorate %139 RelaxedPrecision
|
||||
OpDecorate %140 RelaxedPrecision
|
||||
OpDecorate %141 RelaxedPrecision
|
||||
OpDecorate %142 RelaxedPrecision
|
||||
OpDecorate %143 RelaxedPrecision
|
||||
OpDecorate %144 RelaxedPrecision
|
||||
OpDecorate %145 RelaxedPrecision
|
||||
OpDecorate %_6_minComp RelaxedPrecision
|
||||
OpDecorate %146 RelaxedPrecision
|
||||
OpDecorate %147 RelaxedPrecision
|
||||
OpDecorate %148 RelaxedPrecision
|
||||
OpDecorate %149 RelaxedPrecision
|
||||
OpDecorate %150 RelaxedPrecision
|
||||
OpDecorate %151 RelaxedPrecision
|
||||
OpDecorate %152 RelaxedPrecision
|
||||
OpDecorate %153 RelaxedPrecision
|
||||
OpDecorate %_7_maxComp RelaxedPrecision
|
||||
OpDecorate %155 RelaxedPrecision
|
||||
OpDecorate %156 RelaxedPrecision
|
||||
OpDecorate %157 RelaxedPrecision
|
||||
OpDecorate %161 RelaxedPrecision
|
||||
OpDecorate %158 RelaxedPrecision
|
||||
OpDecorate %159 RelaxedPrecision
|
||||
OpDecorate %160 RelaxedPrecision
|
||||
OpDecorate %162 RelaxedPrecision
|
||||
OpDecorate %163 RelaxedPrecision
|
||||
OpDecorate %164 RelaxedPrecision
|
||||
OpDecorate %165 RelaxedPrecision
|
||||
OpDecorate %166 RelaxedPrecision
|
||||
OpDecorate %167 RelaxedPrecision
|
||||
OpDecorate %168 RelaxedPrecision
|
||||
OpDecorate %169 RelaxedPrecision
|
||||
OpDecorate %170 RelaxedPrecision
|
||||
OpDecorate %172 RelaxedPrecision
|
||||
OpDecorate %173 RelaxedPrecision
|
||||
OpDecorate %174 RelaxedPrecision
|
||||
OpDecorate %175 RelaxedPrecision
|
||||
OpDecorate %176 RelaxedPrecision
|
||||
OpDecorate %177 RelaxedPrecision
|
||||
OpDecorate %178 RelaxedPrecision
|
||||
OpDecorate %179 RelaxedPrecision
|
||||
OpDecorate %180 RelaxedPrecision
|
||||
OpDecorate %181 RelaxedPrecision
|
||||
OpDecorate %182 RelaxedPrecision
|
||||
OpDecorate %183 RelaxedPrecision
|
||||
OpDecorate %184 RelaxedPrecision
|
||||
OpDecorate %185 RelaxedPrecision
|
||||
OpDecorate %186 RelaxedPrecision
|
||||
OpDecorate %187 RelaxedPrecision
|
||||
OpDecorate %188 RelaxedPrecision
|
||||
OpDecorate %189 RelaxedPrecision
|
||||
OpDecorate %190 RelaxedPrecision
|
||||
OpDecorate %_5_lum RelaxedPrecision
|
||||
OpDecorate %192 RelaxedPrecision
|
||||
OpDecorate %191 RelaxedPrecision
|
||||
OpDecorate %196 RelaxedPrecision
|
||||
OpDecorate %197 RelaxedPrecision
|
||||
OpDecorate %_6_result RelaxedPrecision
|
||||
OpDecorate %198 RelaxedPrecision
|
||||
OpDecorate %199 RelaxedPrecision
|
||||
OpDecorate %200 RelaxedPrecision
|
||||
OpDecorate %201 RelaxedPrecision
|
||||
@ -156,80 +161,36 @@ OpDecorate %202 RelaxedPrecision
|
||||
OpDecorate %203 RelaxedPrecision
|
||||
OpDecorate %204 RelaxedPrecision
|
||||
OpDecorate %205 RelaxedPrecision
|
||||
OpDecorate %_7_minComp RelaxedPrecision
|
||||
OpDecorate %206 RelaxedPrecision
|
||||
OpDecorate %207 RelaxedPrecision
|
||||
OpDecorate %208 RelaxedPrecision
|
||||
OpDecorate %209 RelaxedPrecision
|
||||
OpDecorate %210 RelaxedPrecision
|
||||
OpDecorate %211 RelaxedPrecision
|
||||
OpDecorate %212 RelaxedPrecision
|
||||
OpDecorate %213 RelaxedPrecision
|
||||
OpDecorate %214 RelaxedPrecision
|
||||
OpDecorate %_8_maxComp RelaxedPrecision
|
||||
OpDecorate %215 RelaxedPrecision
|
||||
OpDecorate %216 RelaxedPrecision
|
||||
OpDecorate %217 RelaxedPrecision
|
||||
OpDecorate %218 RelaxedPrecision
|
||||
OpDecorate %219 RelaxedPrecision
|
||||
OpDecorate %220 RelaxedPrecision
|
||||
OpDecorate %221 RelaxedPrecision
|
||||
OpDecorate %222 RelaxedPrecision
|
||||
OpDecorate %223 RelaxedPrecision
|
||||
OpDecorate %224 RelaxedPrecision
|
||||
OpDecorate %225 RelaxedPrecision
|
||||
OpDecorate %226 RelaxedPrecision
|
||||
OpDecorate %227 RelaxedPrecision
|
||||
OpDecorate %228 RelaxedPrecision
|
||||
OpDecorate %229 RelaxedPrecision
|
||||
OpDecorate %230 RelaxedPrecision
|
||||
OpDecorate %235 RelaxedPrecision
|
||||
OpDecorate %236 RelaxedPrecision
|
||||
OpDecorate %237 RelaxedPrecision
|
||||
OpDecorate %238 RelaxedPrecision
|
||||
OpDecorate %239 RelaxedPrecision
|
||||
OpDecorate %240 RelaxedPrecision
|
||||
OpDecorate %231 RelaxedPrecision
|
||||
OpDecorate %232 RelaxedPrecision
|
||||
OpDecorate %233 RelaxedPrecision
|
||||
OpDecorate %241 RelaxedPrecision
|
||||
OpDecorate %242 RelaxedPrecision
|
||||
OpDecorate %243 RelaxedPrecision
|
||||
OpDecorate %244 RelaxedPrecision
|
||||
OpDecorate %245 RelaxedPrecision
|
||||
OpDecorate %246 RelaxedPrecision
|
||||
OpDecorate %247 RelaxedPrecision
|
||||
OpDecorate %248 RelaxedPrecision
|
||||
OpDecorate %249 RelaxedPrecision
|
||||
OpDecorate %253 RelaxedPrecision
|
||||
OpDecorate %254 RelaxedPrecision
|
||||
OpDecorate %259 RelaxedPrecision
|
||||
OpDecorate %260 RelaxedPrecision
|
||||
OpDecorate %261 RelaxedPrecision
|
||||
OpDecorate %262 RelaxedPrecision
|
||||
OpDecorate %263 RelaxedPrecision
|
||||
OpDecorate %264 RelaxedPrecision
|
||||
OpDecorate %265 RelaxedPrecision
|
||||
OpDecorate %266 RelaxedPrecision
|
||||
OpDecorate %267 RelaxedPrecision
|
||||
OpDecorate %268 RelaxedPrecision
|
||||
OpDecorate %269 RelaxedPrecision
|
||||
OpDecorate %270 RelaxedPrecision
|
||||
OpDecorate %271 RelaxedPrecision
|
||||
OpDecorate %272 RelaxedPrecision
|
||||
OpDecorate %273 RelaxedPrecision
|
||||
OpDecorate %274 RelaxedPrecision
|
||||
OpDecorate %275 RelaxedPrecision
|
||||
OpDecorate %276 RelaxedPrecision
|
||||
OpDecorate %277 RelaxedPrecision
|
||||
OpDecorate %278 RelaxedPrecision
|
||||
OpDecorate %279 RelaxedPrecision
|
||||
OpDecorate %280 RelaxedPrecision
|
||||
OpDecorate %281 RelaxedPrecision
|
||||
OpDecorate %282 RelaxedPrecision
|
||||
OpDecorate %283 RelaxedPrecision
|
||||
OpDecorate %284 RelaxedPrecision
|
||||
OpDecorate %285 RelaxedPrecision
|
||||
OpDecorate %286 RelaxedPrecision
|
||||
OpDecorate %287 RelaxedPrecision
|
||||
OpDecorate %288 RelaxedPrecision
|
||||
OpDecorate %289 RelaxedPrecision
|
||||
OpDecorate %290 RelaxedPrecision
|
||||
OpDecorate %291 RelaxedPrecision
|
||||
OpDecorate %292 RelaxedPrecision
|
||||
OpDecorate %293 RelaxedPrecision
|
||||
OpDecorate %294 RelaxedPrecision
|
||||
OpDecorate %295 RelaxedPrecision
|
||||
OpDecorate %296 RelaxedPrecision
|
||||
OpDecorate %302 RelaxedPrecision
|
||||
OpDecorate %305 RelaxedPrecision
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
@ -239,398 +200,303 @@ OpDecorate %305 RelaxedPrecision
|
||||
%sk_Clockwise = OpVariable %_ptr_Input_bool Input
|
||||
%_UniformBuffer = OpTypeStruct %v4float %v4float
|
||||
%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
|
||||
%11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
|
||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||
%14 = OpTypeFunction %v4float %_ptr_Function_v4float %_ptr_Function_v4float %_ptr_Function_bool %_ptr_Function_bool
|
||||
%_ptr_Function_float = OpTypePointer Function %float
|
||||
%12 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
|
||||
%v3float = OpTypeVector %float 3
|
||||
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
||||
%float_0 = OpConstant %float 0
|
||||
%68 = OpConstantComposite %v3float %float_0 %float_0 %float_0
|
||||
%16 = OpTypeFunction %float %_ptr_Function_v3float
|
||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||
%37 = OpTypeFunction %v4float %_ptr_Function_v4float %_ptr_Function_v4float %_ptr_Function_bool %_ptr_Function_bool
|
||||
%_ptr_Function_float = OpTypePointer Function %float
|
||||
%float_1 = OpConstant %float 1
|
||||
%int = OpTypeInt 32 1
|
||||
%int_2 = OpConstant %int 2
|
||||
%int_1 = OpConstant %int 1
|
||||
%int_0 = OpConstant %int 0
|
||||
%float_0 = OpConstant %float 0
|
||||
%125 = OpConstantComposite %v3float %float_0 %float_0 %float_0
|
||||
%float_0_300000012 = OpConstant %float 0.300000012
|
||||
%float_0_589999974 = OpConstant %float 0.589999974
|
||||
%float_0_109999999 = OpConstant %float 0.109999999
|
||||
%196 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
|
||||
%133 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
|
||||
%false = OpConstantFalse %bool
|
||||
%void = OpTypeVoid
|
||||
%298 = OpTypeFunction %void
|
||||
%235 = OpTypeFunction %void
|
||||
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
||||
%int = OpTypeInt 32 1
|
||||
%int_0 = OpConstant %int 0
|
||||
%int_1 = OpConstant %int 1
|
||||
%true = OpConstantTrue %bool
|
||||
%blend_hslc_h4h4h4bb = OpFunction %v4float None %14
|
||||
%17 = OpFunctionParameter %_ptr_Function_v4float
|
||||
%18 = OpFunctionParameter %_ptr_Function_v4float
|
||||
%19 = OpFunctionParameter %_ptr_Function_bool
|
||||
%20 = OpFunctionParameter %_ptr_Function_bool
|
||||
%21 = OpLabel
|
||||
%blend_color_saturation_Qhh3 = OpFunction %float None %16
|
||||
%18 = OpFunctionParameter %_ptr_Function_v3float
|
||||
%19 = OpLabel
|
||||
%22 = OpLoad %v3float %18
|
||||
%23 = OpCompositeExtract %float %22 0
|
||||
%24 = OpLoad %v3float %18
|
||||
%25 = OpCompositeExtract %float %24 1
|
||||
%21 = OpExtInst %float %1 FMax %23 %25
|
||||
%26 = OpLoad %v3float %18
|
||||
%27 = OpCompositeExtract %float %26 2
|
||||
%20 = OpExtInst %float %1 FMax %21 %27
|
||||
%30 = OpLoad %v3float %18
|
||||
%31 = OpCompositeExtract %float %30 0
|
||||
%32 = OpLoad %v3float %18
|
||||
%33 = OpCompositeExtract %float %32 1
|
||||
%29 = OpExtInst %float %1 FMin %31 %33
|
||||
%34 = OpLoad %v3float %18
|
||||
%35 = OpCompositeExtract %float %34 2
|
||||
%28 = OpExtInst %float %1 FMin %29 %35
|
||||
%36 = OpFSub %float %20 %28
|
||||
OpReturnValue %36
|
||||
OpFunctionEnd
|
||||
%blend_hslc_h4h4h4bb = OpFunction %v4float None %37
|
||||
%40 = OpFunctionParameter %_ptr_Function_v4float
|
||||
%41 = OpFunctionParameter %_ptr_Function_v4float
|
||||
%42 = OpFunctionParameter %_ptr_Function_bool
|
||||
%43 = OpFunctionParameter %_ptr_Function_bool
|
||||
%44 = OpLabel
|
||||
%alpha = OpVariable %_ptr_Function_float Function
|
||||
%sda = OpVariable %_ptr_Function_v3float Function
|
||||
%dsa = OpVariable %_ptr_Function_v3float Function
|
||||
%l = OpVariable %_ptr_Function_v3float Function
|
||||
%45 = OpVariable %_ptr_Function_v3float Function
|
||||
%66 = OpVariable %_ptr_Function_v3float Function
|
||||
%r = OpVariable %_ptr_Function_v3float Function
|
||||
%54 = OpVariable %_ptr_Function_v3float Function
|
||||
%_2_hueLumColor = OpVariable %_ptr_Function_v3float Function
|
||||
%_3_midPt = OpVariable %_ptr_Function_v3float Function
|
||||
%_4_satPt = OpVariable %_ptr_Function_v3float Function
|
||||
%_5_lum = OpVariable %_ptr_Function_float Function
|
||||
%_6_result = OpVariable %_ptr_Function_v3float Function
|
||||
%_7_minComp = OpVariable %_ptr_Function_float Function
|
||||
%_8_maxComp = OpVariable %_ptr_Function_float Function
|
||||
%24 = OpLoad %v4float %18
|
||||
%25 = OpCompositeExtract %float %24 3
|
||||
%26 = OpLoad %v4float %17
|
||||
%27 = OpCompositeExtract %float %26 3
|
||||
%28 = OpFMul %float %25 %27
|
||||
OpStore %alpha %28
|
||||
%32 = OpLoad %v4float %17
|
||||
%33 = OpVectorShuffle %v3float %32 %32 0 1 2
|
||||
%34 = OpLoad %v4float %18
|
||||
%35 = OpCompositeExtract %float %34 3
|
||||
%36 = OpVectorTimesScalar %v3float %33 %35
|
||||
OpStore %sda %36
|
||||
%38 = OpLoad %v4float %18
|
||||
%39 = OpVectorShuffle %v3float %38 %38 0 1 2
|
||||
%40 = OpLoad %v4float %17
|
||||
%41 = OpCompositeExtract %float %40 3
|
||||
%42 = OpVectorTimesScalar %v3float %39 %41
|
||||
OpStore %dsa %42
|
||||
%44 = OpLoad %bool %19
|
||||
OpSelectionMerge %48 None
|
||||
OpBranchConditional %44 %46 %47
|
||||
%46 = OpLabel
|
||||
%49 = OpLoad %v3float %dsa
|
||||
OpStore %45 %49
|
||||
OpBranch %48
|
||||
%47 = OpLabel
|
||||
%50 = OpLoad %v3float %sda
|
||||
OpStore %45 %50
|
||||
OpBranch %48
|
||||
%48 = OpLabel
|
||||
%51 = OpLoad %v3float %45
|
||||
OpStore %l %51
|
||||
%53 = OpLoad %bool %19
|
||||
OpSelectionMerge %57 None
|
||||
OpBranchConditional %53 %55 %56
|
||||
%55 = OpLabel
|
||||
%58 = OpLoad %v3float %sda
|
||||
OpStore %54 %58
|
||||
OpBranch %57
|
||||
%56 = OpLabel
|
||||
%59 = OpLoad %v3float %dsa
|
||||
OpStore %54 %59
|
||||
OpBranch %57
|
||||
%57 = OpLabel
|
||||
%60 = OpLoad %v3float %54
|
||||
OpStore %r %60
|
||||
%61 = OpLoad %bool %20
|
||||
OpSelectionMerge %63 None
|
||||
OpBranchConditional %61 %62 %63
|
||||
%62 = OpLabel
|
||||
%65 = OpLoad %v3float %l
|
||||
OpStore %_2_hueLumColor %65
|
||||
OpStore %_3_midPt %68
|
||||
OpStore %_4_satPt %68
|
||||
%70 = OpLoad %v3float %_2_hueLumColor
|
||||
%71 = OpCompositeExtract %float %70 0
|
||||
%72 = OpLoad %v3float %_2_hueLumColor
|
||||
%73 = OpCompositeExtract %float %72 1
|
||||
%74 = OpFOrdLessThanEqual %bool %71 %73
|
||||
OpSelectionMerge %77 None
|
||||
OpBranchConditional %74 %75 %76
|
||||
%75 = OpLabel
|
||||
%78 = OpLoad %v3float %_2_hueLumColor
|
||||
%79 = OpCompositeExtract %float %78 1
|
||||
%80 = OpLoad %v3float %_2_hueLumColor
|
||||
%81 = OpCompositeExtract %float %80 2
|
||||
%82 = OpFOrdLessThanEqual %bool %79 %81
|
||||
OpSelectionMerge %85 None
|
||||
%75 = OpVariable %_ptr_Function_v3float Function
|
||||
%_2_mn = OpVariable %_ptr_Function_float Function
|
||||
%_3_mx = OpVariable %_ptr_Function_float Function
|
||||
%106 = OpVariable %_ptr_Function_v3float Function
|
||||
%115 = OpVariable %_ptr_Function_v3float Function
|
||||
%_4_lum = OpVariable %_ptr_Function_float Function
|
||||
%_5_result = OpVariable %_ptr_Function_v3float Function
|
||||
%_6_minComp = OpVariable %_ptr_Function_float Function
|
||||
%_7_maxComp = OpVariable %_ptr_Function_float Function
|
||||
%47 = OpLoad %v4float %41
|
||||
%48 = OpCompositeExtract %float %47 3
|
||||
%49 = OpLoad %v4float %40
|
||||
%50 = OpCompositeExtract %float %49 3
|
||||
%51 = OpFMul %float %48 %50
|
||||
OpStore %alpha %51
|
||||
%53 = OpLoad %v4float %40
|
||||
%54 = OpVectorShuffle %v3float %53 %53 0 1 2
|
||||
%55 = OpLoad %v4float %41
|
||||
%56 = OpCompositeExtract %float %55 3
|
||||
%57 = OpVectorTimesScalar %v3float %54 %56
|
||||
OpStore %sda %57
|
||||
%59 = OpLoad %v4float %41
|
||||
%60 = OpVectorShuffle %v3float %59 %59 0 1 2
|
||||
%61 = OpLoad %v4float %40
|
||||
%62 = OpCompositeExtract %float %61 3
|
||||
%63 = OpVectorTimesScalar %v3float %60 %62
|
||||
OpStore %dsa %63
|
||||
%65 = OpLoad %bool %42
|
||||
OpSelectionMerge %69 None
|
||||
OpBranchConditional %65 %67 %68
|
||||
%67 = OpLabel
|
||||
%70 = OpLoad %v3float %dsa
|
||||
OpStore %66 %70
|
||||
OpBranch %69
|
||||
%68 = OpLabel
|
||||
%71 = OpLoad %v3float %sda
|
||||
OpStore %66 %71
|
||||
OpBranch %69
|
||||
%69 = OpLabel
|
||||
%72 = OpLoad %v3float %66
|
||||
OpStore %l %72
|
||||
%74 = OpLoad %bool %42
|
||||
OpSelectionMerge %78 None
|
||||
OpBranchConditional %74 %76 %77
|
||||
%76 = OpLabel
|
||||
%79 = OpLoad %v3float %sda
|
||||
OpStore %75 %79
|
||||
OpBranch %78
|
||||
%77 = OpLabel
|
||||
%80 = OpLoad %v3float %dsa
|
||||
OpStore %75 %80
|
||||
OpBranch %78
|
||||
%78 = OpLabel
|
||||
%81 = OpLoad %v3float %75
|
||||
OpStore %r %81
|
||||
%82 = OpLoad %bool %43
|
||||
OpSelectionMerge %84 None
|
||||
OpBranchConditional %82 %83 %84
|
||||
%83 = OpLabel
|
||||
%86 = OpLoad %v3float %_2_hueLumColor
|
||||
%87 = OpLoad %v3float %_2_hueLumColor
|
||||
%88 = OpVectorShuffle %v3float %87 %87 0 0 0
|
||||
%89 = OpFSub %v3float %86 %88
|
||||
OpStore %_2_hueLumColor %89
|
||||
%91 = OpAccessChain %_ptr_Function_float %_4_satPt %int_2
|
||||
OpStore %91 %float_1
|
||||
%94 = OpAccessChain %_ptr_Function_float %_3_midPt %int_1
|
||||
OpStore %94 %float_1
|
||||
OpBranch %85
|
||||
%88 = OpLoad %v3float %l
|
||||
%89 = OpCompositeExtract %float %88 0
|
||||
%90 = OpLoad %v3float %l
|
||||
%91 = OpCompositeExtract %float %90 1
|
||||
%87 = OpExtInst %float %1 FMin %89 %91
|
||||
%92 = OpLoad %v3float %l
|
||||
%93 = OpCompositeExtract %float %92 2
|
||||
%86 = OpExtInst %float %1 FMin %87 %93
|
||||
OpStore %_2_mn %86
|
||||
%97 = OpLoad %v3float %l
|
||||
%98 = OpCompositeExtract %float %97 0
|
||||
%99 = OpLoad %v3float %l
|
||||
%100 = OpCompositeExtract %float %99 1
|
||||
%96 = OpExtInst %float %1 FMax %98 %100
|
||||
%101 = OpLoad %v3float %l
|
||||
%102 = OpCompositeExtract %float %101 2
|
||||
%95 = OpExtInst %float %1 FMax %96 %102
|
||||
OpStore %_3_mx %95
|
||||
%103 = OpLoad %float %_3_mx
|
||||
%104 = OpLoad %float %_2_mn
|
||||
%105 = OpFOrdGreaterThan %bool %103 %104
|
||||
OpSelectionMerge %109 None
|
||||
OpBranchConditional %105 %107 %108
|
||||
%107 = OpLabel
|
||||
%110 = OpLoad %v3float %l
|
||||
%111 = OpLoad %float %_2_mn
|
||||
%112 = OpCompositeConstruct %v3float %111 %111 %111
|
||||
%113 = OpFSub %v3float %110 %112
|
||||
%114 = OpLoad %v3float %r
|
||||
OpStore %115 %114
|
||||
%116 = OpFunctionCall %float %blend_color_saturation_Qhh3 %115
|
||||
%117 = OpVectorTimesScalar %v3float %113 %116
|
||||
%118 = OpLoad %float %_3_mx
|
||||
%119 = OpLoad %float %_2_mn
|
||||
%120 = OpFSub %float %118 %119
|
||||
%122 = OpFDiv %float %float_1 %120
|
||||
%123 = OpVectorTimesScalar %v3float %117 %122
|
||||
OpStore %106 %123
|
||||
OpBranch %109
|
||||
%108 = OpLabel
|
||||
OpStore %106 %125
|
||||
OpBranch %109
|
||||
%109 = OpLabel
|
||||
%126 = OpLoad %v3float %106
|
||||
OpStore %l %126
|
||||
%127 = OpLoad %v3float %dsa
|
||||
OpStore %r %127
|
||||
OpBranch %84
|
||||
%84 = OpLabel
|
||||
%96 = OpLoad %v3float %_2_hueLumColor
|
||||
%97 = OpCompositeExtract %float %96 0
|
||||
%98 = OpLoad %v3float %_2_hueLumColor
|
||||
%99 = OpCompositeExtract %float %98 2
|
||||
%100 = OpFOrdLessThanEqual %bool %97 %99
|
||||
OpSelectionMerge %103 None
|
||||
OpBranchConditional %100 %101 %102
|
||||
%101 = OpLabel
|
||||
%104 = OpLoad %v3float %_2_hueLumColor
|
||||
%105 = OpVectorShuffle %v3float %104 %104 0 2 1
|
||||
%106 = OpLoad %v3float %_2_hueLumColor
|
||||
%107 = OpVectorShuffle %v3float %106 %106 0 0 0
|
||||
%108 = OpFSub %v3float %105 %107
|
||||
OpStore %_2_hueLumColor %108
|
||||
%109 = OpAccessChain %_ptr_Function_float %_4_satPt %int_1
|
||||
OpStore %109 %float_1
|
||||
%110 = OpAccessChain %_ptr_Function_float %_3_midPt %int_2
|
||||
OpStore %110 %float_1
|
||||
OpBranch %103
|
||||
%102 = OpLabel
|
||||
%111 = OpLoad %v3float %_2_hueLumColor
|
||||
%112 = OpVectorShuffle %v3float %111 %111 2 0 1
|
||||
%113 = OpLoad %v3float %_2_hueLumColor
|
||||
%114 = OpVectorShuffle %v3float %113 %113 2 2 2
|
||||
%115 = OpFSub %v3float %112 %114
|
||||
OpStore %_2_hueLumColor %115
|
||||
%116 = OpAccessChain %_ptr_Function_float %_4_satPt %int_1
|
||||
OpStore %116 %float_1
|
||||
%117 = OpAccessChain %_ptr_Function_float %_3_midPt %int_0
|
||||
OpStore %117 %float_1
|
||||
OpBranch %103
|
||||
%103 = OpLabel
|
||||
OpBranch %85
|
||||
%85 = OpLabel
|
||||
OpBranch %77
|
||||
%76 = OpLabel
|
||||
%119 = OpLoad %v3float %_2_hueLumColor
|
||||
%120 = OpCompositeExtract %float %119 0
|
||||
%121 = OpLoad %v3float %_2_hueLumColor
|
||||
%122 = OpCompositeExtract %float %121 2
|
||||
%123 = OpFOrdLessThanEqual %bool %120 %122
|
||||
OpSelectionMerge %126 None
|
||||
OpBranchConditional %123 %124 %125
|
||||
%124 = OpLabel
|
||||
%127 = OpLoad %v3float %_2_hueLumColor
|
||||
%128 = OpVectorShuffle %v3float %127 %127 1 0 2
|
||||
%129 = OpLoad %v3float %_2_hueLumColor
|
||||
%130 = OpVectorShuffle %v3float %129 %129 1 1 1
|
||||
%131 = OpFSub %v3float %128 %130
|
||||
OpStore %_2_hueLumColor %131
|
||||
%132 = OpAccessChain %_ptr_Function_float %_4_satPt %int_2
|
||||
OpStore %132 %float_1
|
||||
%133 = OpAccessChain %_ptr_Function_float %_3_midPt %int_0
|
||||
OpStore %133 %float_1
|
||||
OpBranch %126
|
||||
%125 = OpLabel
|
||||
%134 = OpLoad %v3float %_2_hueLumColor
|
||||
%135 = OpCompositeExtract %float %134 1
|
||||
%136 = OpLoad %v3float %_2_hueLumColor
|
||||
%137 = OpCompositeExtract %float %136 2
|
||||
%138 = OpFOrdLessThanEqual %bool %135 %137
|
||||
OpSelectionMerge %141 None
|
||||
OpBranchConditional %138 %139 %140
|
||||
%139 = OpLabel
|
||||
%142 = OpLoad %v3float %_2_hueLumColor
|
||||
%143 = OpVectorShuffle %v3float %142 %142 1 2 0
|
||||
%144 = OpLoad %v3float %_2_hueLumColor
|
||||
%145 = OpVectorShuffle %v3float %144 %144 1 1 1
|
||||
%146 = OpFSub %v3float %143 %145
|
||||
OpStore %_2_hueLumColor %146
|
||||
%147 = OpAccessChain %_ptr_Function_float %_4_satPt %int_0
|
||||
OpStore %147 %float_1
|
||||
%148 = OpAccessChain %_ptr_Function_float %_3_midPt %int_2
|
||||
OpStore %148 %float_1
|
||||
OpBranch %141
|
||||
%140 = OpLabel
|
||||
%149 = OpLoad %v3float %_2_hueLumColor
|
||||
%150 = OpVectorShuffle %v3float %149 %149 2 1 0
|
||||
%151 = OpLoad %v3float %_2_hueLumColor
|
||||
%152 = OpVectorShuffle %v3float %151 %151 2 2 2
|
||||
%153 = OpFSub %v3float %150 %152
|
||||
OpStore %_2_hueLumColor %153
|
||||
%154 = OpAccessChain %_ptr_Function_float %_4_satPt %int_0
|
||||
OpStore %154 %float_1
|
||||
%155 = OpAccessChain %_ptr_Function_float %_3_midPt %int_1
|
||||
OpStore %155 %float_1
|
||||
OpBranch %141
|
||||
%141 = OpLabel
|
||||
OpBranch %126
|
||||
%126 = OpLabel
|
||||
OpBranch %77
|
||||
%77 = OpLabel
|
||||
%156 = OpLoad %v3float %_2_hueLumColor
|
||||
%157 = OpCompositeExtract %float %156 2
|
||||
%158 = OpFOrdGreaterThan %bool %157 %float_0
|
||||
OpSelectionMerge %160 None
|
||||
OpBranchConditional %158 %159 %160
|
||||
%159 = OpLabel
|
||||
%161 = OpLoad %v3float %_3_midPt
|
||||
%162 = OpLoad %v3float %_2_hueLumColor
|
||||
%163 = OpCompositeExtract %float %162 1
|
||||
%164 = OpLoad %v3float %_2_hueLumColor
|
||||
%165 = OpCompositeExtract %float %164 2
|
||||
%166 = OpFDiv %float %163 %165
|
||||
%167 = OpVectorTimesScalar %v3float %161 %166
|
||||
OpStore %_3_midPt %167
|
||||
%168 = OpLoad %v3float %_3_midPt
|
||||
%169 = OpLoad %v3float %_4_satPt
|
||||
%170 = OpFAdd %v3float %168 %169
|
||||
%173 = OpLoad %v3float %r
|
||||
%174 = OpCompositeExtract %float %173 0
|
||||
%175 = OpLoad %v3float %r
|
||||
%176 = OpCompositeExtract %float %175 1
|
||||
%172 = OpExtInst %float %1 FMax %174 %176
|
||||
%177 = OpLoad %v3float %r
|
||||
%178 = OpCompositeExtract %float %177 2
|
||||
%171 = OpExtInst %float %1 FMax %172 %178
|
||||
%181 = OpLoad %v3float %r
|
||||
%182 = OpCompositeExtract %float %181 0
|
||||
%183 = OpLoad %v3float %r
|
||||
%184 = OpCompositeExtract %float %183 1
|
||||
%180 = OpExtInst %float %1 FMin %182 %184
|
||||
%185 = OpLoad %v3float %r
|
||||
%186 = OpCompositeExtract %float %185 2
|
||||
%179 = OpExtInst %float %1 FMin %180 %186
|
||||
%187 = OpFSub %float %171 %179
|
||||
%188 = OpVectorTimesScalar %v3float %170 %187
|
||||
OpStore %_2_hueLumColor %188
|
||||
OpBranch %160
|
||||
%160 = OpLabel
|
||||
%189 = OpLoad %v3float %_2_hueLumColor
|
||||
OpStore %l %189
|
||||
%190 = OpLoad %v3float %dsa
|
||||
OpStore %r %190
|
||||
OpBranch %63
|
||||
%63 = OpLabel
|
||||
%197 = OpLoad %v3float %r
|
||||
%192 = OpDot %float %196 %197
|
||||
OpStore %_5_lum %192
|
||||
%199 = OpLoad %float %_5_lum
|
||||
%201 = OpLoad %v3float %l
|
||||
%200 = OpDot %float %196 %201
|
||||
%202 = OpFSub %float %199 %200
|
||||
%203 = OpLoad %v3float %l
|
||||
%204 = OpCompositeConstruct %v3float %202 %202 %202
|
||||
%205 = OpFAdd %v3float %204 %203
|
||||
OpStore %_6_result %205
|
||||
%209 = OpLoad %v3float %_6_result
|
||||
%210 = OpCompositeExtract %float %209 0
|
||||
%211 = OpLoad %v3float %_6_result
|
||||
%212 = OpCompositeExtract %float %211 1
|
||||
%208 = OpExtInst %float %1 FMin %210 %212
|
||||
%213 = OpLoad %v3float %_6_result
|
||||
%214 = OpCompositeExtract %float %213 2
|
||||
%207 = OpExtInst %float %1 FMin %208 %214
|
||||
OpStore %_7_minComp %207
|
||||
%218 = OpLoad %v3float %_6_result
|
||||
%219 = OpCompositeExtract %float %218 0
|
||||
%220 = OpLoad %v3float %_6_result
|
||||
%221 = OpCompositeExtract %float %220 1
|
||||
%217 = OpExtInst %float %1 FMax %219 %221
|
||||
%222 = OpLoad %v3float %_6_result
|
||||
%223 = OpCompositeExtract %float %222 2
|
||||
%216 = OpExtInst %float %1 FMax %217 %223
|
||||
OpStore %_8_maxComp %216
|
||||
%225 = OpLoad %float %_7_minComp
|
||||
%226 = OpFOrdLessThan %bool %225 %float_0
|
||||
OpSelectionMerge %228 None
|
||||
OpBranchConditional %226 %227 %228
|
||||
%227 = OpLabel
|
||||
%229 = OpLoad %float %_5_lum
|
||||
%230 = OpLoad %float %_7_minComp
|
||||
%231 = OpFUnordNotEqual %bool %229 %230
|
||||
OpBranch %228
|
||||
%228 = OpLabel
|
||||
%232 = OpPhi %bool %false %63 %231 %227
|
||||
OpSelectionMerge %234 None
|
||||
OpBranchConditional %232 %233 %234
|
||||
%233 = OpLabel
|
||||
%235 = OpLoad %float %_5_lum
|
||||
%236 = OpLoad %v3float %_6_result
|
||||
%237 = OpLoad %float %_5_lum
|
||||
%238 = OpCompositeConstruct %v3float %237 %237 %237
|
||||
%239 = OpFSub %v3float %236 %238
|
||||
%240 = OpLoad %float %_5_lum
|
||||
%241 = OpLoad %float %_5_lum
|
||||
%242 = OpLoad %float %_7_minComp
|
||||
%243 = OpFSub %float %241 %242
|
||||
%244 = OpFDiv %float %240 %243
|
||||
%245 = OpVectorTimesScalar %v3float %239 %244
|
||||
%246 = OpCompositeConstruct %v3float %235 %235 %235
|
||||
%247 = OpFAdd %v3float %246 %245
|
||||
OpStore %_6_result %247
|
||||
OpBranch %234
|
||||
%234 = OpLabel
|
||||
%248 = OpLoad %float %_8_maxComp
|
||||
%249 = OpLoad %float %alpha
|
||||
%250 = OpFOrdGreaterThan %bool %248 %249
|
||||
OpSelectionMerge %252 None
|
||||
OpBranchConditional %250 %251 %252
|
||||
%251 = OpLabel
|
||||
%253 = OpLoad %float %_8_maxComp
|
||||
%254 = OpLoad %float %_5_lum
|
||||
%255 = OpFUnordNotEqual %bool %253 %254
|
||||
OpBranch %252
|
||||
%252 = OpLabel
|
||||
%256 = OpPhi %bool %false %234 %255 %251
|
||||
OpSelectionMerge %258 None
|
||||
OpBranchConditional %256 %257 %258
|
||||
%257 = OpLabel
|
||||
%259 = OpLoad %float %_5_lum
|
||||
%260 = OpLoad %v3float %_6_result
|
||||
%261 = OpLoad %float %_5_lum
|
||||
%262 = OpCompositeConstruct %v3float %261 %261 %261
|
||||
%263 = OpFSub %v3float %260 %262
|
||||
%264 = OpLoad %float %alpha
|
||||
%265 = OpLoad %float %_5_lum
|
||||
%266 = OpFSub %float %264 %265
|
||||
%267 = OpVectorTimesScalar %v3float %263 %266
|
||||
%268 = OpLoad %float %_8_maxComp
|
||||
%269 = OpLoad %float %_5_lum
|
||||
%270 = OpFSub %float %268 %269
|
||||
%271 = OpFDiv %float %float_1 %270
|
||||
%272 = OpVectorTimesScalar %v3float %267 %271
|
||||
%273 = OpCompositeConstruct %v3float %259 %259 %259
|
||||
%274 = OpFAdd %v3float %273 %272
|
||||
OpStore %_6_result %274
|
||||
OpBranch %258
|
||||
%258 = OpLabel
|
||||
%275 = OpLoad %v3float %_6_result
|
||||
%276 = OpLoad %v4float %18
|
||||
%277 = OpVectorShuffle %v3float %276 %276 0 1 2
|
||||
%278 = OpFAdd %v3float %275 %277
|
||||
%279 = OpLoad %v3float %dsa
|
||||
%280 = OpFSub %v3float %278 %279
|
||||
%281 = OpLoad %v4float %17
|
||||
%282 = OpVectorShuffle %v3float %281 %281 0 1 2
|
||||
%283 = OpFAdd %v3float %280 %282
|
||||
%284 = OpLoad %v3float %sda
|
||||
%285 = OpFSub %v3float %283 %284
|
||||
%286 = OpCompositeExtract %float %285 0
|
||||
%287 = OpCompositeExtract %float %285 1
|
||||
%288 = OpCompositeExtract %float %285 2
|
||||
%289 = OpLoad %v4float %17
|
||||
%290 = OpCompositeExtract %float %289 3
|
||||
%291 = OpLoad %v4float %18
|
||||
%292 = OpCompositeExtract %float %291 3
|
||||
%293 = OpFAdd %float %290 %292
|
||||
%294 = OpLoad %float %alpha
|
||||
%295 = OpFSub %float %293 %294
|
||||
%296 = OpCompositeConstruct %v4float %286 %287 %288 %295
|
||||
OpReturnValue %296
|
||||
%134 = OpLoad %v3float %r
|
||||
%129 = OpDot %float %133 %134
|
||||
OpStore %_4_lum %129
|
||||
%136 = OpLoad %float %_4_lum
|
||||
%138 = OpLoad %v3float %l
|
||||
%137 = OpDot %float %133 %138
|
||||
%139 = OpFSub %float %136 %137
|
||||
%140 = OpLoad %v3float %l
|
||||
%141 = OpCompositeConstruct %v3float %139 %139 %139
|
||||
%142 = OpFAdd %v3float %141 %140
|
||||
OpStore %_5_result %142
|
||||
%146 = OpLoad %v3float %_5_result
|
||||
%147 = OpCompositeExtract %float %146 0
|
||||
%148 = OpLoad %v3float %_5_result
|
||||
%149 = OpCompositeExtract %float %148 1
|
||||
%145 = OpExtInst %float %1 FMin %147 %149
|
||||
%150 = OpLoad %v3float %_5_result
|
||||
%151 = OpCompositeExtract %float %150 2
|
||||
%144 = OpExtInst %float %1 FMin %145 %151
|
||||
OpStore %_6_minComp %144
|
||||
%155 = OpLoad %v3float %_5_result
|
||||
%156 = OpCompositeExtract %float %155 0
|
||||
%157 = OpLoad %v3float %_5_result
|
||||
%158 = OpCompositeExtract %float %157 1
|
||||
%154 = OpExtInst %float %1 FMax %156 %158
|
||||
%159 = OpLoad %v3float %_5_result
|
||||
%160 = OpCompositeExtract %float %159 2
|
||||
%153 = OpExtInst %float %1 FMax %154 %160
|
||||
OpStore %_7_maxComp %153
|
||||
%162 = OpLoad %float %_6_minComp
|
||||
%163 = OpFOrdLessThan %bool %162 %float_0
|
||||
OpSelectionMerge %165 None
|
||||
OpBranchConditional %163 %164 %165
|
||||
%164 = OpLabel
|
||||
%166 = OpLoad %float %_4_lum
|
||||
%167 = OpLoad %float %_6_minComp
|
||||
%168 = OpFUnordNotEqual %bool %166 %167
|
||||
OpBranch %165
|
||||
%165 = OpLabel
|
||||
%169 = OpPhi %bool %false %84 %168 %164
|
||||
OpSelectionMerge %171 None
|
||||
OpBranchConditional %169 %170 %171
|
||||
%170 = OpLabel
|
||||
%172 = OpLoad %float %_4_lum
|
||||
%173 = OpLoad %v3float %_5_result
|
||||
%174 = OpLoad %float %_4_lum
|
||||
%175 = OpCompositeConstruct %v3float %174 %174 %174
|
||||
%176 = OpFSub %v3float %173 %175
|
||||
%177 = OpLoad %float %_4_lum
|
||||
%178 = OpLoad %float %_4_lum
|
||||
%179 = OpLoad %float %_6_minComp
|
||||
%180 = OpFSub %float %178 %179
|
||||
%181 = OpFDiv %float %177 %180
|
||||
%182 = OpVectorTimesScalar %v3float %176 %181
|
||||
%183 = OpCompositeConstruct %v3float %172 %172 %172
|
||||
%184 = OpFAdd %v3float %183 %182
|
||||
OpStore %_5_result %184
|
||||
OpBranch %171
|
||||
%171 = OpLabel
|
||||
%185 = OpLoad %float %_7_maxComp
|
||||
%186 = OpLoad %float %alpha
|
||||
%187 = OpFOrdGreaterThan %bool %185 %186
|
||||
OpSelectionMerge %189 None
|
||||
OpBranchConditional %187 %188 %189
|
||||
%188 = OpLabel
|
||||
%190 = OpLoad %float %_7_maxComp
|
||||
%191 = OpLoad %float %_4_lum
|
||||
%192 = OpFUnordNotEqual %bool %190 %191
|
||||
OpBranch %189
|
||||
%189 = OpLabel
|
||||
%193 = OpPhi %bool %false %171 %192 %188
|
||||
OpSelectionMerge %195 None
|
||||
OpBranchConditional %193 %194 %195
|
||||
%194 = OpLabel
|
||||
%196 = OpLoad %float %_4_lum
|
||||
%197 = OpLoad %v3float %_5_result
|
||||
%198 = OpLoad %float %_4_lum
|
||||
%199 = OpCompositeConstruct %v3float %198 %198 %198
|
||||
%200 = OpFSub %v3float %197 %199
|
||||
%201 = OpLoad %float %alpha
|
||||
%202 = OpLoad %float %_4_lum
|
||||
%203 = OpFSub %float %201 %202
|
||||
%204 = OpVectorTimesScalar %v3float %200 %203
|
||||
%205 = OpLoad %float %_7_maxComp
|
||||
%206 = OpLoad %float %_4_lum
|
||||
%207 = OpFSub %float %205 %206
|
||||
%208 = OpFDiv %float %float_1 %207
|
||||
%209 = OpVectorTimesScalar %v3float %204 %208
|
||||
%210 = OpCompositeConstruct %v3float %196 %196 %196
|
||||
%211 = OpFAdd %v3float %210 %209
|
||||
OpStore %_5_result %211
|
||||
OpBranch %195
|
||||
%195 = OpLabel
|
||||
%212 = OpLoad %v3float %_5_result
|
||||
%213 = OpLoad %v4float %41
|
||||
%214 = OpVectorShuffle %v3float %213 %213 0 1 2
|
||||
%215 = OpFAdd %v3float %212 %214
|
||||
%216 = OpLoad %v3float %dsa
|
||||
%217 = OpFSub %v3float %215 %216
|
||||
%218 = OpLoad %v4float %40
|
||||
%219 = OpVectorShuffle %v3float %218 %218 0 1 2
|
||||
%220 = OpFAdd %v3float %217 %219
|
||||
%221 = OpLoad %v3float %sda
|
||||
%222 = OpFSub %v3float %220 %221
|
||||
%223 = OpCompositeExtract %float %222 0
|
||||
%224 = OpCompositeExtract %float %222 1
|
||||
%225 = OpCompositeExtract %float %222 2
|
||||
%226 = OpLoad %v4float %40
|
||||
%227 = OpCompositeExtract %float %226 3
|
||||
%228 = OpLoad %v4float %41
|
||||
%229 = OpCompositeExtract %float %228 3
|
||||
%230 = OpFAdd %float %227 %229
|
||||
%231 = OpLoad %float %alpha
|
||||
%232 = OpFSub %float %230 %231
|
||||
%233 = OpCompositeConstruct %v4float %223 %224 %225 %232
|
||||
OpReturnValue %233
|
||||
OpFunctionEnd
|
||||
%main = OpFunction %void None %298
|
||||
%299 = OpLabel
|
||||
%303 = OpVariable %_ptr_Function_v4float Function
|
||||
%306 = OpVariable %_ptr_Function_v4float Function
|
||||
%308 = OpVariable %_ptr_Function_bool Function
|
||||
%309 = OpVariable %_ptr_Function_bool Function
|
||||
%300 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0
|
||||
%302 = OpLoad %v4float %300
|
||||
OpStore %303 %302
|
||||
%304 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1
|
||||
%305 = OpLoad %v4float %304
|
||||
OpStore %306 %305
|
||||
OpStore %308 %true
|
||||
OpStore %309 %false
|
||||
%310 = OpFunctionCall %v4float %blend_hslc_h4h4h4bb %303 %306 %308 %309
|
||||
OpStore %sk_FragColor %310
|
||||
%main = OpFunction %void None %235
|
||||
%236 = OpLabel
|
||||
%242 = OpVariable %_ptr_Function_v4float Function
|
||||
%246 = OpVariable %_ptr_Function_v4float Function
|
||||
%248 = OpVariable %_ptr_Function_bool Function
|
||||
%249 = OpVariable %_ptr_Function_bool Function
|
||||
%237 = OpAccessChain %_ptr_Uniform_v4float %12 %int_0
|
||||
%241 = OpLoad %v4float %237
|
||||
OpStore %242 %241
|
||||
%243 = OpAccessChain %_ptr_Uniform_v4float %12 %int_1
|
||||
%245 = OpLoad %v4float %243
|
||||
OpStore %246 %245
|
||||
OpStore %248 %true
|
||||
OpStore %249 %false
|
||||
%250 = OpFunctionCall %v4float %blend_hslc_h4h4h4bb %242 %246 %248 %249
|
||||
OpStore %sk_FragColor %250
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
@ -2,6 +2,9 @@
|
||||
out vec4 sk_FragColor;
|
||||
uniform vec4 src;
|
||||
uniform vec4 dst;
|
||||
float blend_color_saturation_Qhh3(vec3 color) {
|
||||
return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z);
|
||||
}
|
||||
vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) {
|
||||
float alpha = dst.w * src.w;
|
||||
vec3 sda = src.xyz * dst.w;
|
||||
@ -9,48 +12,22 @@ vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) {
|
||||
vec3 l = flip ? dsa : sda;
|
||||
vec3 r = flip ? sda : dsa;
|
||||
if (saturate) {
|
||||
vec3 _2_hueLumColor = l;
|
||||
vec3 _3_midPt = vec3(0.0);
|
||||
vec3 _4_satPt = vec3(0.0);
|
||||
if (_2_hueLumColor.x <= _2_hueLumColor.y) {
|
||||
if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor -= _2_hueLumColor.xxx;
|
||||
_3_midPt.y = (_4_satPt.z = 1.0);
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.xzy - _2_hueLumColor.xxx;
|
||||
_3_midPt.z = (_4_satPt.y = 1.0);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zxy - _2_hueLumColor.zzz;
|
||||
_3_midPt.x = (_4_satPt.y = 1.0);
|
||||
}
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yxz - _2_hueLumColor.yyy;
|
||||
_3_midPt.x = (_4_satPt.z = 1.0);
|
||||
} else if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yzx - _2_hueLumColor.yyy;
|
||||
_3_midPt.z = (_4_satPt.x = 1.0);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zyx - _2_hueLumColor.zzz;
|
||||
_3_midPt.y = (_4_satPt.x = 1.0);
|
||||
}
|
||||
if (_2_hueLumColor.z > 0.0) {
|
||||
_3_midPt *= _2_hueLumColor.y / _2_hueLumColor.z;
|
||||
_2_hueLumColor = (_3_midPt + _4_satPt) * (max(max(r.x, r.y), r.z) - min(min(r.x, r.y), r.z));
|
||||
}
|
||||
l = _2_hueLumColor;
|
||||
float _2_mn = min(min(l.x, l.y), l.z);
|
||||
float _3_mx = max(max(l.x, l.y), l.z);
|
||||
l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : vec3(0.0);
|
||||
r = dsa;
|
||||
}
|
||||
float _5_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r);
|
||||
vec3 _6_result = (_5_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l;
|
||||
float _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
|
||||
float _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
|
||||
if (_7_minComp < 0.0 && _5_lum != _7_minComp) {
|
||||
_6_result = _5_lum + (_6_result - _5_lum) * (_5_lum / (_5_lum - _7_minComp));
|
||||
float _4_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r);
|
||||
vec3 _5_result = (_4_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l;
|
||||
float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z);
|
||||
float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z);
|
||||
if (_6_minComp < 0.0 && _4_lum != _6_minComp) {
|
||||
_5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp));
|
||||
}
|
||||
if (_8_maxComp > alpha && _8_maxComp != _5_lum) {
|
||||
_6_result = _5_lum + ((_6_result - _5_lum) * (alpha - _5_lum)) / (_8_maxComp - _5_lum);
|
||||
if (_7_maxComp > alpha && _7_maxComp != _4_lum) {
|
||||
_5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum);
|
||||
}
|
||||
return vec4((((_6_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
}
|
||||
void main() {
|
||||
sk_FragColor = blend_hslc_h4h4h4bb(src, dst, true, false);
|
||||
|
@ -10,6 +10,9 @@ struct Inputs {
|
||||
struct Outputs {
|
||||
half4 sk_FragColor [[color(0)]];
|
||||
};
|
||||
half blend_color_saturation_Qhh3(half3 color) {
|
||||
return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z);
|
||||
}
|
||||
half4 blend_hslc_h4h4h4bb(half4 src, half4 dst, bool flip, bool saturate) {
|
||||
half alpha = dst.w * src.w;
|
||||
half3 sda = src.xyz * dst.w;
|
||||
@ -17,48 +20,22 @@ half4 blend_hslc_h4h4h4bb(half4 src, half4 dst, bool flip, bool saturate) {
|
||||
half3 l = flip ? dsa : sda;
|
||||
half3 r = flip ? sda : dsa;
|
||||
if (saturate) {
|
||||
half3 _2_hueLumColor = l;
|
||||
half3 _3_midPt = half3(0.0h);
|
||||
half3 _4_satPt = half3(0.0h);
|
||||
if (_2_hueLumColor.x <= _2_hueLumColor.y) {
|
||||
if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor -= _2_hueLumColor.xxx;
|
||||
_3_midPt.y = (_4_satPt.z = 1.0h);
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.xzy - _2_hueLumColor.xxx;
|
||||
_3_midPt.z = (_4_satPt.y = 1.0h);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zxy - _2_hueLumColor.zzz;
|
||||
_3_midPt.x = (_4_satPt.y = 1.0h);
|
||||
}
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yxz - _2_hueLumColor.yyy;
|
||||
_3_midPt.x = (_4_satPt.z = 1.0h);
|
||||
} else if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yzx - _2_hueLumColor.yyy;
|
||||
_3_midPt.z = (_4_satPt.x = 1.0h);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zyx - _2_hueLumColor.zzz;
|
||||
_3_midPt.y = (_4_satPt.x = 1.0h);
|
||||
}
|
||||
if (_2_hueLumColor.z > 0.0h) {
|
||||
_3_midPt *= _2_hueLumColor.y / _2_hueLumColor.z;
|
||||
_2_hueLumColor = (_3_midPt + _4_satPt) * (max(max(r.x, r.y), r.z) - min(min(r.x, r.y), r.z));
|
||||
}
|
||||
l = _2_hueLumColor;
|
||||
half _2_mn = min(min(l.x, l.y), l.z);
|
||||
half _3_mx = max(max(l.x, l.y), l.z);
|
||||
l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : half3(0.0h);
|
||||
r = dsa;
|
||||
}
|
||||
half _5_lum = dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), r);
|
||||
half3 _6_result = (_5_lum - dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), l)) + l;
|
||||
half _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
|
||||
half _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
|
||||
if (_7_minComp < 0.0h && _5_lum != _7_minComp) {
|
||||
_6_result = _5_lum + (_6_result - _5_lum) * (_5_lum / (_5_lum - _7_minComp));
|
||||
half _4_lum = dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), r);
|
||||
half3 _5_result = (_4_lum - dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), l)) + l;
|
||||
half _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z);
|
||||
half _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z);
|
||||
if (_6_minComp < 0.0h && _4_lum != _6_minComp) {
|
||||
_5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp));
|
||||
}
|
||||
if (_8_maxComp > alpha && _8_maxComp != _5_lum) {
|
||||
_6_result = _5_lum + ((_6_result - _5_lum) * (alpha - _5_lum)) / (_8_maxComp - _5_lum);
|
||||
if (_7_maxComp > alpha && _7_maxComp != _4_lum) {
|
||||
_5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum);
|
||||
}
|
||||
return half4((((_6_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
return half4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
}
|
||||
fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
|
||||
Outputs _out;
|
||||
|
@ -2,6 +2,9 @@
|
||||
out vec4 sk_FragColor;
|
||||
uniform vec4 src;
|
||||
uniform vec4 dst;
|
||||
float blend_color_saturation_Qhh3(vec3 color) {
|
||||
return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z);
|
||||
}
|
||||
vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) {
|
||||
float alpha = dst.w * src.w;
|
||||
vec3 sda = src.xyz * dst.w;
|
||||
@ -9,48 +12,22 @@ vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) {
|
||||
vec3 l = flip ? dsa : sda;
|
||||
vec3 r = flip ? sda : dsa;
|
||||
if (saturate) {
|
||||
vec3 _2_hueLumColor = l;
|
||||
vec3 _3_midPt = vec3(0.0);
|
||||
vec3 _4_satPt = vec3(0.0);
|
||||
if (_2_hueLumColor.x <= _2_hueLumColor.y) {
|
||||
if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor -= _2_hueLumColor.xxx;
|
||||
_3_midPt.y = (_4_satPt.z = 1.0);
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.xzy - _2_hueLumColor.xxx;
|
||||
_3_midPt.z = (_4_satPt.y = 1.0);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zxy - _2_hueLumColor.zzz;
|
||||
_3_midPt.x = (_4_satPt.y = 1.0);
|
||||
}
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yxz - _2_hueLumColor.yyy;
|
||||
_3_midPt.x = (_4_satPt.z = 1.0);
|
||||
} else if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yzx - _2_hueLumColor.yyy;
|
||||
_3_midPt.z = (_4_satPt.x = 1.0);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zyx - _2_hueLumColor.zzz;
|
||||
_3_midPt.y = (_4_satPt.x = 1.0);
|
||||
}
|
||||
if (_2_hueLumColor.z > 0.0) {
|
||||
_3_midPt *= _2_hueLumColor.y / _2_hueLumColor.z;
|
||||
_2_hueLumColor = (_3_midPt + _4_satPt) * (max(max(r.x, r.y), r.z) - min(min(r.x, r.y), r.z));
|
||||
}
|
||||
l = _2_hueLumColor;
|
||||
float _2_mn = min(min(l.x, l.y), l.z);
|
||||
float _3_mx = max(max(l.x, l.y), l.z);
|
||||
l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : vec3(0.0);
|
||||
r = dsa;
|
||||
}
|
||||
float _5_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r);
|
||||
vec3 _6_result = (_5_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l;
|
||||
float _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
|
||||
float _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
|
||||
if (_7_minComp < 0.0 && _5_lum != _7_minComp) {
|
||||
_6_result = _5_lum + (_6_result - _5_lum) * (_5_lum / (_5_lum - _7_minComp));
|
||||
float _4_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r);
|
||||
vec3 _5_result = (_4_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l;
|
||||
float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z);
|
||||
float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z);
|
||||
if (_6_minComp < 0.0 && _4_lum != _6_minComp) {
|
||||
_5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp));
|
||||
}
|
||||
if (_8_maxComp > alpha && _8_maxComp != _5_lum) {
|
||||
_6_result = _5_lum + ((_6_result - _5_lum) * (alpha - _5_lum)) / (_8_maxComp - _5_lum);
|
||||
if (_7_maxComp > alpha && _7_maxComp != _4_lum) {
|
||||
_5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum);
|
||||
}
|
||||
return vec4((((_6_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
}
|
||||
void main() {
|
||||
sk_FragColor = blend_hslc_h4h4h4bb(src, dst, true, false);
|
||||
|
@ -8,19 +8,19 @@ OpName %sk_Clockwise "sk_Clockwise"
|
||||
OpName %_UniformBuffer "_UniformBuffer"
|
||||
OpMemberName %_UniformBuffer 0 "src"
|
||||
OpMemberName %_UniformBuffer 1 "dst"
|
||||
OpName %blend_color_saturation_Qhh3 "blend_color_saturation_Qhh3"
|
||||
OpName %blend_hslc_h4h4h4bb "blend_hslc_h4h4h4bb"
|
||||
OpName %alpha "alpha"
|
||||
OpName %sda "sda"
|
||||
OpName %dsa "dsa"
|
||||
OpName %l "l"
|
||||
OpName %r "r"
|
||||
OpName %_2_hueLumColor "_2_hueLumColor"
|
||||
OpName %_3_midPt "_3_midPt"
|
||||
OpName %_4_satPt "_4_satPt"
|
||||
OpName %_5_lum "_5_lum"
|
||||
OpName %_6_result "_6_result"
|
||||
OpName %_7_minComp "_7_minComp"
|
||||
OpName %_8_maxComp "_8_maxComp"
|
||||
OpName %_2_mn "_2_mn"
|
||||
OpName %_3_mx "_3_mx"
|
||||
OpName %_4_lum "_4_lum"
|
||||
OpName %_5_result "_5_result"
|
||||
OpName %_6_minComp "_6_minComp"
|
||||
OpName %_7_maxComp "_7_maxComp"
|
||||
OpName %main "main"
|
||||
OpDecorate %sk_FragColor RelaxedPrecision
|
||||
OpDecorate %sk_FragColor Location 0
|
||||
@ -31,124 +31,129 @@ OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
|
||||
OpMemberDecorate %_UniformBuffer 1 Offset 16
|
||||
OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
|
||||
OpDecorate %_UniformBuffer Block
|
||||
OpDecorate %11 Binding 0
|
||||
OpDecorate %11 DescriptorSet 0
|
||||
OpDecorate %alpha RelaxedPrecision
|
||||
OpDecorate %12 Binding 0
|
||||
OpDecorate %12 DescriptorSet 0
|
||||
OpDecorate %22 RelaxedPrecision
|
||||
OpDecorate %23 RelaxedPrecision
|
||||
OpDecorate %24 RelaxedPrecision
|
||||
OpDecorate %25 RelaxedPrecision
|
||||
OpDecorate %26 RelaxedPrecision
|
||||
OpDecorate %27 RelaxedPrecision
|
||||
OpDecorate %28 RelaxedPrecision
|
||||
OpDecorate %sda RelaxedPrecision
|
||||
OpDecorate %30 RelaxedPrecision
|
||||
OpDecorate %31 RelaxedPrecision
|
||||
OpDecorate %32 RelaxedPrecision
|
||||
OpDecorate %33 RelaxedPrecision
|
||||
OpDecorate %34 RelaxedPrecision
|
||||
OpDecorate %35 RelaxedPrecision
|
||||
OpDecorate %36 RelaxedPrecision
|
||||
OpDecorate %dsa RelaxedPrecision
|
||||
OpDecorate %38 RelaxedPrecision
|
||||
OpDecorate %39 RelaxedPrecision
|
||||
OpDecorate %40 RelaxedPrecision
|
||||
OpDecorate %41 RelaxedPrecision
|
||||
OpDecorate %42 RelaxedPrecision
|
||||
OpDecorate %l RelaxedPrecision
|
||||
OpDecorate %44 RelaxedPrecision
|
||||
OpDecorate %alpha RelaxedPrecision
|
||||
OpDecorate %47 RelaxedPrecision
|
||||
OpDecorate %48 RelaxedPrecision
|
||||
OpDecorate %49 RelaxedPrecision
|
||||
OpDecorate %50 RelaxedPrecision
|
||||
OpDecorate %51 RelaxedPrecision
|
||||
OpDecorate %r RelaxedPrecision
|
||||
OpDecorate %sda RelaxedPrecision
|
||||
OpDecorate %53 RelaxedPrecision
|
||||
OpDecorate %58 RelaxedPrecision
|
||||
OpDecorate %54 RelaxedPrecision
|
||||
OpDecorate %55 RelaxedPrecision
|
||||
OpDecorate %56 RelaxedPrecision
|
||||
OpDecorate %57 RelaxedPrecision
|
||||
OpDecorate %dsa RelaxedPrecision
|
||||
OpDecorate %59 RelaxedPrecision
|
||||
OpDecorate %60 RelaxedPrecision
|
||||
OpDecorate %61 RelaxedPrecision
|
||||
OpDecorate %_2_hueLumColor RelaxedPrecision
|
||||
OpDecorate %62 RelaxedPrecision
|
||||
OpDecorate %63 RelaxedPrecision
|
||||
OpDecorate %l RelaxedPrecision
|
||||
OpDecorate %65 RelaxedPrecision
|
||||
OpDecorate %_3_midPt RelaxedPrecision
|
||||
OpDecorate %68 RelaxedPrecision
|
||||
OpDecorate %_4_satPt RelaxedPrecision
|
||||
OpDecorate %70 RelaxedPrecision
|
||||
OpDecorate %71 RelaxedPrecision
|
||||
OpDecorate %72 RelaxedPrecision
|
||||
OpDecorate %73 RelaxedPrecision
|
||||
OpDecorate %78 RelaxedPrecision
|
||||
OpDecorate %r RelaxedPrecision
|
||||
OpDecorate %74 RelaxedPrecision
|
||||
OpDecorate %79 RelaxedPrecision
|
||||
OpDecorate %80 RelaxedPrecision
|
||||
OpDecorate %81 RelaxedPrecision
|
||||
OpDecorate %86 RelaxedPrecision
|
||||
OpDecorate %87 RelaxedPrecision
|
||||
OpDecorate %82 RelaxedPrecision
|
||||
OpDecorate %_2_mn RelaxedPrecision
|
||||
OpDecorate %88 RelaxedPrecision
|
||||
OpDecorate %89 RelaxedPrecision
|
||||
OpDecorate %96 RelaxedPrecision
|
||||
OpDecorate %90 RelaxedPrecision
|
||||
OpDecorate %91 RelaxedPrecision
|
||||
OpDecorate %92 RelaxedPrecision
|
||||
OpDecorate %93 RelaxedPrecision
|
||||
OpDecorate %_3_mx RelaxedPrecision
|
||||
OpDecorate %97 RelaxedPrecision
|
||||
OpDecorate %98 RelaxedPrecision
|
||||
OpDecorate %99 RelaxedPrecision
|
||||
OpDecorate %100 RelaxedPrecision
|
||||
OpDecorate %101 RelaxedPrecision
|
||||
OpDecorate %102 RelaxedPrecision
|
||||
OpDecorate %103 RelaxedPrecision
|
||||
OpDecorate %104 RelaxedPrecision
|
||||
OpDecorate %105 RelaxedPrecision
|
||||
OpDecorate %106 RelaxedPrecision
|
||||
OpDecorate %107 RelaxedPrecision
|
||||
OpDecorate %108 RelaxedPrecision
|
||||
OpDecorate %110 RelaxedPrecision
|
||||
OpDecorate %111 RelaxedPrecision
|
||||
OpDecorate %112 RelaxedPrecision
|
||||
OpDecorate %113 RelaxedPrecision
|
||||
OpDecorate %114 RelaxedPrecision
|
||||
OpDecorate %115 RelaxedPrecision
|
||||
OpDecorate %117 RelaxedPrecision
|
||||
OpDecorate %118 RelaxedPrecision
|
||||
OpDecorate %119 RelaxedPrecision
|
||||
OpDecorate %120 RelaxedPrecision
|
||||
OpDecorate %121 RelaxedPrecision
|
||||
OpDecorate %122 RelaxedPrecision
|
||||
OpDecorate %123 RelaxedPrecision
|
||||
OpDecorate %125 RelaxedPrecision
|
||||
OpDecorate %126 RelaxedPrecision
|
||||
OpDecorate %127 RelaxedPrecision
|
||||
OpDecorate %128 RelaxedPrecision
|
||||
OpDecorate %_4_lum RelaxedPrecision
|
||||
OpDecorate %129 RelaxedPrecision
|
||||
OpDecorate %130 RelaxedPrecision
|
||||
OpDecorate %131 RelaxedPrecision
|
||||
OpDecorate %133 RelaxedPrecision
|
||||
OpDecorate %134 RelaxedPrecision
|
||||
OpDecorate %135 RelaxedPrecision
|
||||
OpDecorate %_5_result RelaxedPrecision
|
||||
OpDecorate %136 RelaxedPrecision
|
||||
OpDecorate %137 RelaxedPrecision
|
||||
OpDecorate %138 RelaxedPrecision
|
||||
OpDecorate %139 RelaxedPrecision
|
||||
OpDecorate %140 RelaxedPrecision
|
||||
OpDecorate %141 RelaxedPrecision
|
||||
OpDecorate %142 RelaxedPrecision
|
||||
OpDecorate %143 RelaxedPrecision
|
||||
OpDecorate %144 RelaxedPrecision
|
||||
OpDecorate %145 RelaxedPrecision
|
||||
OpDecorate %_6_minComp RelaxedPrecision
|
||||
OpDecorate %146 RelaxedPrecision
|
||||
OpDecorate %147 RelaxedPrecision
|
||||
OpDecorate %148 RelaxedPrecision
|
||||
OpDecorate %149 RelaxedPrecision
|
||||
OpDecorate %150 RelaxedPrecision
|
||||
OpDecorate %151 RelaxedPrecision
|
||||
OpDecorate %152 RelaxedPrecision
|
||||
OpDecorate %153 RelaxedPrecision
|
||||
OpDecorate %_7_maxComp RelaxedPrecision
|
||||
OpDecorate %155 RelaxedPrecision
|
||||
OpDecorate %156 RelaxedPrecision
|
||||
OpDecorate %157 RelaxedPrecision
|
||||
OpDecorate %161 RelaxedPrecision
|
||||
OpDecorate %158 RelaxedPrecision
|
||||
OpDecorate %159 RelaxedPrecision
|
||||
OpDecorate %160 RelaxedPrecision
|
||||
OpDecorate %162 RelaxedPrecision
|
||||
OpDecorate %163 RelaxedPrecision
|
||||
OpDecorate %164 RelaxedPrecision
|
||||
OpDecorate %165 RelaxedPrecision
|
||||
OpDecorate %166 RelaxedPrecision
|
||||
OpDecorate %167 RelaxedPrecision
|
||||
OpDecorate %168 RelaxedPrecision
|
||||
OpDecorate %169 RelaxedPrecision
|
||||
OpDecorate %170 RelaxedPrecision
|
||||
OpDecorate %172 RelaxedPrecision
|
||||
OpDecorate %173 RelaxedPrecision
|
||||
OpDecorate %174 RelaxedPrecision
|
||||
OpDecorate %175 RelaxedPrecision
|
||||
OpDecorate %176 RelaxedPrecision
|
||||
OpDecorate %177 RelaxedPrecision
|
||||
OpDecorate %178 RelaxedPrecision
|
||||
OpDecorate %179 RelaxedPrecision
|
||||
OpDecorate %180 RelaxedPrecision
|
||||
OpDecorate %181 RelaxedPrecision
|
||||
OpDecorate %182 RelaxedPrecision
|
||||
OpDecorate %183 RelaxedPrecision
|
||||
OpDecorate %184 RelaxedPrecision
|
||||
OpDecorate %185 RelaxedPrecision
|
||||
OpDecorate %186 RelaxedPrecision
|
||||
OpDecorate %187 RelaxedPrecision
|
||||
OpDecorate %188 RelaxedPrecision
|
||||
OpDecorate %189 RelaxedPrecision
|
||||
OpDecorate %190 RelaxedPrecision
|
||||
OpDecorate %_5_lum RelaxedPrecision
|
||||
OpDecorate %192 RelaxedPrecision
|
||||
OpDecorate %191 RelaxedPrecision
|
||||
OpDecorate %196 RelaxedPrecision
|
||||
OpDecorate %197 RelaxedPrecision
|
||||
OpDecorate %_6_result RelaxedPrecision
|
||||
OpDecorate %198 RelaxedPrecision
|
||||
OpDecorate %199 RelaxedPrecision
|
||||
OpDecorate %200 RelaxedPrecision
|
||||
OpDecorate %201 RelaxedPrecision
|
||||
@ -156,80 +161,36 @@ OpDecorate %202 RelaxedPrecision
|
||||
OpDecorate %203 RelaxedPrecision
|
||||
OpDecorate %204 RelaxedPrecision
|
||||
OpDecorate %205 RelaxedPrecision
|
||||
OpDecorate %_7_minComp RelaxedPrecision
|
||||
OpDecorate %206 RelaxedPrecision
|
||||
OpDecorate %207 RelaxedPrecision
|
||||
OpDecorate %208 RelaxedPrecision
|
||||
OpDecorate %209 RelaxedPrecision
|
||||
OpDecorate %210 RelaxedPrecision
|
||||
OpDecorate %211 RelaxedPrecision
|
||||
OpDecorate %212 RelaxedPrecision
|
||||
OpDecorate %213 RelaxedPrecision
|
||||
OpDecorate %214 RelaxedPrecision
|
||||
OpDecorate %_8_maxComp RelaxedPrecision
|
||||
OpDecorate %215 RelaxedPrecision
|
||||
OpDecorate %216 RelaxedPrecision
|
||||
OpDecorate %217 RelaxedPrecision
|
||||
OpDecorate %218 RelaxedPrecision
|
||||
OpDecorate %219 RelaxedPrecision
|
||||
OpDecorate %220 RelaxedPrecision
|
||||
OpDecorate %221 RelaxedPrecision
|
||||
OpDecorate %222 RelaxedPrecision
|
||||
OpDecorate %223 RelaxedPrecision
|
||||
OpDecorate %224 RelaxedPrecision
|
||||
OpDecorate %225 RelaxedPrecision
|
||||
OpDecorate %226 RelaxedPrecision
|
||||
OpDecorate %227 RelaxedPrecision
|
||||
OpDecorate %228 RelaxedPrecision
|
||||
OpDecorate %229 RelaxedPrecision
|
||||
OpDecorate %230 RelaxedPrecision
|
||||
OpDecorate %235 RelaxedPrecision
|
||||
OpDecorate %236 RelaxedPrecision
|
||||
OpDecorate %237 RelaxedPrecision
|
||||
OpDecorate %238 RelaxedPrecision
|
||||
OpDecorate %239 RelaxedPrecision
|
||||
OpDecorate %240 RelaxedPrecision
|
||||
OpDecorate %231 RelaxedPrecision
|
||||
OpDecorate %232 RelaxedPrecision
|
||||
OpDecorate %233 RelaxedPrecision
|
||||
OpDecorate %241 RelaxedPrecision
|
||||
OpDecorate %242 RelaxedPrecision
|
||||
OpDecorate %243 RelaxedPrecision
|
||||
OpDecorate %244 RelaxedPrecision
|
||||
OpDecorate %245 RelaxedPrecision
|
||||
OpDecorate %246 RelaxedPrecision
|
||||
OpDecorate %247 RelaxedPrecision
|
||||
OpDecorate %248 RelaxedPrecision
|
||||
OpDecorate %249 RelaxedPrecision
|
||||
OpDecorate %253 RelaxedPrecision
|
||||
OpDecorate %254 RelaxedPrecision
|
||||
OpDecorate %259 RelaxedPrecision
|
||||
OpDecorate %260 RelaxedPrecision
|
||||
OpDecorate %261 RelaxedPrecision
|
||||
OpDecorate %262 RelaxedPrecision
|
||||
OpDecorate %263 RelaxedPrecision
|
||||
OpDecorate %264 RelaxedPrecision
|
||||
OpDecorate %265 RelaxedPrecision
|
||||
OpDecorate %266 RelaxedPrecision
|
||||
OpDecorate %267 RelaxedPrecision
|
||||
OpDecorate %268 RelaxedPrecision
|
||||
OpDecorate %269 RelaxedPrecision
|
||||
OpDecorate %270 RelaxedPrecision
|
||||
OpDecorate %271 RelaxedPrecision
|
||||
OpDecorate %272 RelaxedPrecision
|
||||
OpDecorate %273 RelaxedPrecision
|
||||
OpDecorate %274 RelaxedPrecision
|
||||
OpDecorate %275 RelaxedPrecision
|
||||
OpDecorate %276 RelaxedPrecision
|
||||
OpDecorate %277 RelaxedPrecision
|
||||
OpDecorate %278 RelaxedPrecision
|
||||
OpDecorate %279 RelaxedPrecision
|
||||
OpDecorate %280 RelaxedPrecision
|
||||
OpDecorate %281 RelaxedPrecision
|
||||
OpDecorate %282 RelaxedPrecision
|
||||
OpDecorate %283 RelaxedPrecision
|
||||
OpDecorate %284 RelaxedPrecision
|
||||
OpDecorate %285 RelaxedPrecision
|
||||
OpDecorate %286 RelaxedPrecision
|
||||
OpDecorate %287 RelaxedPrecision
|
||||
OpDecorate %288 RelaxedPrecision
|
||||
OpDecorate %289 RelaxedPrecision
|
||||
OpDecorate %290 RelaxedPrecision
|
||||
OpDecorate %291 RelaxedPrecision
|
||||
OpDecorate %292 RelaxedPrecision
|
||||
OpDecorate %293 RelaxedPrecision
|
||||
OpDecorate %294 RelaxedPrecision
|
||||
OpDecorate %295 RelaxedPrecision
|
||||
OpDecorate %296 RelaxedPrecision
|
||||
OpDecorate %302 RelaxedPrecision
|
||||
OpDecorate %305 RelaxedPrecision
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
@ -239,398 +200,303 @@ OpDecorate %305 RelaxedPrecision
|
||||
%sk_Clockwise = OpVariable %_ptr_Input_bool Input
|
||||
%_UniformBuffer = OpTypeStruct %v4float %v4float
|
||||
%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
|
||||
%11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
|
||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||
%14 = OpTypeFunction %v4float %_ptr_Function_v4float %_ptr_Function_v4float %_ptr_Function_bool %_ptr_Function_bool
|
||||
%_ptr_Function_float = OpTypePointer Function %float
|
||||
%12 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
|
||||
%v3float = OpTypeVector %float 3
|
||||
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
||||
%float_0 = OpConstant %float 0
|
||||
%68 = OpConstantComposite %v3float %float_0 %float_0 %float_0
|
||||
%16 = OpTypeFunction %float %_ptr_Function_v3float
|
||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||
%37 = OpTypeFunction %v4float %_ptr_Function_v4float %_ptr_Function_v4float %_ptr_Function_bool %_ptr_Function_bool
|
||||
%_ptr_Function_float = OpTypePointer Function %float
|
||||
%float_1 = OpConstant %float 1
|
||||
%int = OpTypeInt 32 1
|
||||
%int_2 = OpConstant %int 2
|
||||
%int_1 = OpConstant %int 1
|
||||
%int_0 = OpConstant %int 0
|
||||
%float_0 = OpConstant %float 0
|
||||
%125 = OpConstantComposite %v3float %float_0 %float_0 %float_0
|
||||
%float_0_300000012 = OpConstant %float 0.300000012
|
||||
%float_0_589999974 = OpConstant %float 0.589999974
|
||||
%float_0_109999999 = OpConstant %float 0.109999999
|
||||
%196 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
|
||||
%133 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999
|
||||
%false = OpConstantFalse %bool
|
||||
%void = OpTypeVoid
|
||||
%298 = OpTypeFunction %void
|
||||
%235 = OpTypeFunction %void
|
||||
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
||||
%int = OpTypeInt 32 1
|
||||
%int_0 = OpConstant %int 0
|
||||
%int_1 = OpConstant %int 1
|
||||
%true = OpConstantTrue %bool
|
||||
%blend_hslc_h4h4h4bb = OpFunction %v4float None %14
|
||||
%17 = OpFunctionParameter %_ptr_Function_v4float
|
||||
%18 = OpFunctionParameter %_ptr_Function_v4float
|
||||
%19 = OpFunctionParameter %_ptr_Function_bool
|
||||
%20 = OpFunctionParameter %_ptr_Function_bool
|
||||
%21 = OpLabel
|
||||
%blend_color_saturation_Qhh3 = OpFunction %float None %16
|
||||
%18 = OpFunctionParameter %_ptr_Function_v3float
|
||||
%19 = OpLabel
|
||||
%22 = OpLoad %v3float %18
|
||||
%23 = OpCompositeExtract %float %22 0
|
||||
%24 = OpLoad %v3float %18
|
||||
%25 = OpCompositeExtract %float %24 1
|
||||
%21 = OpExtInst %float %1 FMax %23 %25
|
||||
%26 = OpLoad %v3float %18
|
||||
%27 = OpCompositeExtract %float %26 2
|
||||
%20 = OpExtInst %float %1 FMax %21 %27
|
||||
%30 = OpLoad %v3float %18
|
||||
%31 = OpCompositeExtract %float %30 0
|
||||
%32 = OpLoad %v3float %18
|
||||
%33 = OpCompositeExtract %float %32 1
|
||||
%29 = OpExtInst %float %1 FMin %31 %33
|
||||
%34 = OpLoad %v3float %18
|
||||
%35 = OpCompositeExtract %float %34 2
|
||||
%28 = OpExtInst %float %1 FMin %29 %35
|
||||
%36 = OpFSub %float %20 %28
|
||||
OpReturnValue %36
|
||||
OpFunctionEnd
|
||||
%blend_hslc_h4h4h4bb = OpFunction %v4float None %37
|
||||
%40 = OpFunctionParameter %_ptr_Function_v4float
|
||||
%41 = OpFunctionParameter %_ptr_Function_v4float
|
||||
%42 = OpFunctionParameter %_ptr_Function_bool
|
||||
%43 = OpFunctionParameter %_ptr_Function_bool
|
||||
%44 = OpLabel
|
||||
%alpha = OpVariable %_ptr_Function_float Function
|
||||
%sda = OpVariable %_ptr_Function_v3float Function
|
||||
%dsa = OpVariable %_ptr_Function_v3float Function
|
||||
%l = OpVariable %_ptr_Function_v3float Function
|
||||
%45 = OpVariable %_ptr_Function_v3float Function
|
||||
%66 = OpVariable %_ptr_Function_v3float Function
|
||||
%r = OpVariable %_ptr_Function_v3float Function
|
||||
%54 = OpVariable %_ptr_Function_v3float Function
|
||||
%_2_hueLumColor = OpVariable %_ptr_Function_v3float Function
|
||||
%_3_midPt = OpVariable %_ptr_Function_v3float Function
|
||||
%_4_satPt = OpVariable %_ptr_Function_v3float Function
|
||||
%_5_lum = OpVariable %_ptr_Function_float Function
|
||||
%_6_result = OpVariable %_ptr_Function_v3float Function
|
||||
%_7_minComp = OpVariable %_ptr_Function_float Function
|
||||
%_8_maxComp = OpVariable %_ptr_Function_float Function
|
||||
%24 = OpLoad %v4float %18
|
||||
%25 = OpCompositeExtract %float %24 3
|
||||
%26 = OpLoad %v4float %17
|
||||
%27 = OpCompositeExtract %float %26 3
|
||||
%28 = OpFMul %float %25 %27
|
||||
OpStore %alpha %28
|
||||
%32 = OpLoad %v4float %17
|
||||
%33 = OpVectorShuffle %v3float %32 %32 0 1 2
|
||||
%34 = OpLoad %v4float %18
|
||||
%35 = OpCompositeExtract %float %34 3
|
||||
%36 = OpVectorTimesScalar %v3float %33 %35
|
||||
OpStore %sda %36
|
||||
%38 = OpLoad %v4float %18
|
||||
%39 = OpVectorShuffle %v3float %38 %38 0 1 2
|
||||
%40 = OpLoad %v4float %17
|
||||
%41 = OpCompositeExtract %float %40 3
|
||||
%42 = OpVectorTimesScalar %v3float %39 %41
|
||||
OpStore %dsa %42
|
||||
%44 = OpLoad %bool %19
|
||||
OpSelectionMerge %48 None
|
||||
OpBranchConditional %44 %46 %47
|
||||
%46 = OpLabel
|
||||
%49 = OpLoad %v3float %dsa
|
||||
OpStore %45 %49
|
||||
OpBranch %48
|
||||
%47 = OpLabel
|
||||
%50 = OpLoad %v3float %sda
|
||||
OpStore %45 %50
|
||||
OpBranch %48
|
||||
%48 = OpLabel
|
||||
%51 = OpLoad %v3float %45
|
||||
OpStore %l %51
|
||||
%53 = OpLoad %bool %19
|
||||
OpSelectionMerge %57 None
|
||||
OpBranchConditional %53 %55 %56
|
||||
%55 = OpLabel
|
||||
%58 = OpLoad %v3float %sda
|
||||
OpStore %54 %58
|
||||
OpBranch %57
|
||||
%56 = OpLabel
|
||||
%59 = OpLoad %v3float %dsa
|
||||
OpStore %54 %59
|
||||
OpBranch %57
|
||||
%57 = OpLabel
|
||||
%60 = OpLoad %v3float %54
|
||||
OpStore %r %60
|
||||
%61 = OpLoad %bool %20
|
||||
OpSelectionMerge %63 None
|
||||
OpBranchConditional %61 %62 %63
|
||||
%62 = OpLabel
|
||||
%65 = OpLoad %v3float %l
|
||||
OpStore %_2_hueLumColor %65
|
||||
OpStore %_3_midPt %68
|
||||
OpStore %_4_satPt %68
|
||||
%70 = OpLoad %v3float %_2_hueLumColor
|
||||
%71 = OpCompositeExtract %float %70 0
|
||||
%72 = OpLoad %v3float %_2_hueLumColor
|
||||
%73 = OpCompositeExtract %float %72 1
|
||||
%74 = OpFOrdLessThanEqual %bool %71 %73
|
||||
OpSelectionMerge %77 None
|
||||
OpBranchConditional %74 %75 %76
|
||||
%75 = OpLabel
|
||||
%78 = OpLoad %v3float %_2_hueLumColor
|
||||
%79 = OpCompositeExtract %float %78 1
|
||||
%80 = OpLoad %v3float %_2_hueLumColor
|
||||
%81 = OpCompositeExtract %float %80 2
|
||||
%82 = OpFOrdLessThanEqual %bool %79 %81
|
||||
OpSelectionMerge %85 None
|
||||
%75 = OpVariable %_ptr_Function_v3float Function
|
||||
%_2_mn = OpVariable %_ptr_Function_float Function
|
||||
%_3_mx = OpVariable %_ptr_Function_float Function
|
||||
%106 = OpVariable %_ptr_Function_v3float Function
|
||||
%115 = OpVariable %_ptr_Function_v3float Function
|
||||
%_4_lum = OpVariable %_ptr_Function_float Function
|
||||
%_5_result = OpVariable %_ptr_Function_v3float Function
|
||||
%_6_minComp = OpVariable %_ptr_Function_float Function
|
||||
%_7_maxComp = OpVariable %_ptr_Function_float Function
|
||||
%47 = OpLoad %v4float %41
|
||||
%48 = OpCompositeExtract %float %47 3
|
||||
%49 = OpLoad %v4float %40
|
||||
%50 = OpCompositeExtract %float %49 3
|
||||
%51 = OpFMul %float %48 %50
|
||||
OpStore %alpha %51
|
||||
%53 = OpLoad %v4float %40
|
||||
%54 = OpVectorShuffle %v3float %53 %53 0 1 2
|
||||
%55 = OpLoad %v4float %41
|
||||
%56 = OpCompositeExtract %float %55 3
|
||||
%57 = OpVectorTimesScalar %v3float %54 %56
|
||||
OpStore %sda %57
|
||||
%59 = OpLoad %v4float %41
|
||||
%60 = OpVectorShuffle %v3float %59 %59 0 1 2
|
||||
%61 = OpLoad %v4float %40
|
||||
%62 = OpCompositeExtract %float %61 3
|
||||
%63 = OpVectorTimesScalar %v3float %60 %62
|
||||
OpStore %dsa %63
|
||||
%65 = OpLoad %bool %42
|
||||
OpSelectionMerge %69 None
|
||||
OpBranchConditional %65 %67 %68
|
||||
%67 = OpLabel
|
||||
%70 = OpLoad %v3float %dsa
|
||||
OpStore %66 %70
|
||||
OpBranch %69
|
||||
%68 = OpLabel
|
||||
%71 = OpLoad %v3float %sda
|
||||
OpStore %66 %71
|
||||
OpBranch %69
|
||||
%69 = OpLabel
|
||||
%72 = OpLoad %v3float %66
|
||||
OpStore %l %72
|
||||
%74 = OpLoad %bool %42
|
||||
OpSelectionMerge %78 None
|
||||
OpBranchConditional %74 %76 %77
|
||||
%76 = OpLabel
|
||||
%79 = OpLoad %v3float %sda
|
||||
OpStore %75 %79
|
||||
OpBranch %78
|
||||
%77 = OpLabel
|
||||
%80 = OpLoad %v3float %dsa
|
||||
OpStore %75 %80
|
||||
OpBranch %78
|
||||
%78 = OpLabel
|
||||
%81 = OpLoad %v3float %75
|
||||
OpStore %r %81
|
||||
%82 = OpLoad %bool %43
|
||||
OpSelectionMerge %84 None
|
||||
OpBranchConditional %82 %83 %84
|
||||
%83 = OpLabel
|
||||
%86 = OpLoad %v3float %_2_hueLumColor
|
||||
%87 = OpLoad %v3float %_2_hueLumColor
|
||||
%88 = OpVectorShuffle %v3float %87 %87 0 0 0
|
||||
%89 = OpFSub %v3float %86 %88
|
||||
OpStore %_2_hueLumColor %89
|
||||
%91 = OpAccessChain %_ptr_Function_float %_4_satPt %int_2
|
||||
OpStore %91 %float_1
|
||||
%94 = OpAccessChain %_ptr_Function_float %_3_midPt %int_1
|
||||
OpStore %94 %float_1
|
||||
OpBranch %85
|
||||
%88 = OpLoad %v3float %l
|
||||
%89 = OpCompositeExtract %float %88 0
|
||||
%90 = OpLoad %v3float %l
|
||||
%91 = OpCompositeExtract %float %90 1
|
||||
%87 = OpExtInst %float %1 FMin %89 %91
|
||||
%92 = OpLoad %v3float %l
|
||||
%93 = OpCompositeExtract %float %92 2
|
||||
%86 = OpExtInst %float %1 FMin %87 %93
|
||||
OpStore %_2_mn %86
|
||||
%97 = OpLoad %v3float %l
|
||||
%98 = OpCompositeExtract %float %97 0
|
||||
%99 = OpLoad %v3float %l
|
||||
%100 = OpCompositeExtract %float %99 1
|
||||
%96 = OpExtInst %float %1 FMax %98 %100
|
||||
%101 = OpLoad %v3float %l
|
||||
%102 = OpCompositeExtract %float %101 2
|
||||
%95 = OpExtInst %float %1 FMax %96 %102
|
||||
OpStore %_3_mx %95
|
||||
%103 = OpLoad %float %_3_mx
|
||||
%104 = OpLoad %float %_2_mn
|
||||
%105 = OpFOrdGreaterThan %bool %103 %104
|
||||
OpSelectionMerge %109 None
|
||||
OpBranchConditional %105 %107 %108
|
||||
%107 = OpLabel
|
||||
%110 = OpLoad %v3float %l
|
||||
%111 = OpLoad %float %_2_mn
|
||||
%112 = OpCompositeConstruct %v3float %111 %111 %111
|
||||
%113 = OpFSub %v3float %110 %112
|
||||
%114 = OpLoad %v3float %r
|
||||
OpStore %115 %114
|
||||
%116 = OpFunctionCall %float %blend_color_saturation_Qhh3 %115
|
||||
%117 = OpVectorTimesScalar %v3float %113 %116
|
||||
%118 = OpLoad %float %_3_mx
|
||||
%119 = OpLoad %float %_2_mn
|
||||
%120 = OpFSub %float %118 %119
|
||||
%122 = OpFDiv %float %float_1 %120
|
||||
%123 = OpVectorTimesScalar %v3float %117 %122
|
||||
OpStore %106 %123
|
||||
OpBranch %109
|
||||
%108 = OpLabel
|
||||
OpStore %106 %125
|
||||
OpBranch %109
|
||||
%109 = OpLabel
|
||||
%126 = OpLoad %v3float %106
|
||||
OpStore %l %126
|
||||
%127 = OpLoad %v3float %dsa
|
||||
OpStore %r %127
|
||||
OpBranch %84
|
||||
%84 = OpLabel
|
||||
%96 = OpLoad %v3float %_2_hueLumColor
|
||||
%97 = OpCompositeExtract %float %96 0
|
||||
%98 = OpLoad %v3float %_2_hueLumColor
|
||||
%99 = OpCompositeExtract %float %98 2
|
||||
%100 = OpFOrdLessThanEqual %bool %97 %99
|
||||
OpSelectionMerge %103 None
|
||||
OpBranchConditional %100 %101 %102
|
||||
%101 = OpLabel
|
||||
%104 = OpLoad %v3float %_2_hueLumColor
|
||||
%105 = OpVectorShuffle %v3float %104 %104 0 2 1
|
||||
%106 = OpLoad %v3float %_2_hueLumColor
|
||||
%107 = OpVectorShuffle %v3float %106 %106 0 0 0
|
||||
%108 = OpFSub %v3float %105 %107
|
||||
OpStore %_2_hueLumColor %108
|
||||
%109 = OpAccessChain %_ptr_Function_float %_4_satPt %int_1
|
||||
OpStore %109 %float_1
|
||||
%110 = OpAccessChain %_ptr_Function_float %_3_midPt %int_2
|
||||
OpStore %110 %float_1
|
||||
OpBranch %103
|
||||
%102 = OpLabel
|
||||
%111 = OpLoad %v3float %_2_hueLumColor
|
||||
%112 = OpVectorShuffle %v3float %111 %111 2 0 1
|
||||
%113 = OpLoad %v3float %_2_hueLumColor
|
||||
%114 = OpVectorShuffle %v3float %113 %113 2 2 2
|
||||
%115 = OpFSub %v3float %112 %114
|
||||
OpStore %_2_hueLumColor %115
|
||||
%116 = OpAccessChain %_ptr_Function_float %_4_satPt %int_1
|
||||
OpStore %116 %float_1
|
||||
%117 = OpAccessChain %_ptr_Function_float %_3_midPt %int_0
|
||||
OpStore %117 %float_1
|
||||
OpBranch %103
|
||||
%103 = OpLabel
|
||||
OpBranch %85
|
||||
%85 = OpLabel
|
||||
OpBranch %77
|
||||
%76 = OpLabel
|
||||
%119 = OpLoad %v3float %_2_hueLumColor
|
||||
%120 = OpCompositeExtract %float %119 0
|
||||
%121 = OpLoad %v3float %_2_hueLumColor
|
||||
%122 = OpCompositeExtract %float %121 2
|
||||
%123 = OpFOrdLessThanEqual %bool %120 %122
|
||||
OpSelectionMerge %126 None
|
||||
OpBranchConditional %123 %124 %125
|
||||
%124 = OpLabel
|
||||
%127 = OpLoad %v3float %_2_hueLumColor
|
||||
%128 = OpVectorShuffle %v3float %127 %127 1 0 2
|
||||
%129 = OpLoad %v3float %_2_hueLumColor
|
||||
%130 = OpVectorShuffle %v3float %129 %129 1 1 1
|
||||
%131 = OpFSub %v3float %128 %130
|
||||
OpStore %_2_hueLumColor %131
|
||||
%132 = OpAccessChain %_ptr_Function_float %_4_satPt %int_2
|
||||
OpStore %132 %float_1
|
||||
%133 = OpAccessChain %_ptr_Function_float %_3_midPt %int_0
|
||||
OpStore %133 %float_1
|
||||
OpBranch %126
|
||||
%125 = OpLabel
|
||||
%134 = OpLoad %v3float %_2_hueLumColor
|
||||
%135 = OpCompositeExtract %float %134 1
|
||||
%136 = OpLoad %v3float %_2_hueLumColor
|
||||
%137 = OpCompositeExtract %float %136 2
|
||||
%138 = OpFOrdLessThanEqual %bool %135 %137
|
||||
OpSelectionMerge %141 None
|
||||
OpBranchConditional %138 %139 %140
|
||||
%139 = OpLabel
|
||||
%142 = OpLoad %v3float %_2_hueLumColor
|
||||
%143 = OpVectorShuffle %v3float %142 %142 1 2 0
|
||||
%144 = OpLoad %v3float %_2_hueLumColor
|
||||
%145 = OpVectorShuffle %v3float %144 %144 1 1 1
|
||||
%146 = OpFSub %v3float %143 %145
|
||||
OpStore %_2_hueLumColor %146
|
||||
%147 = OpAccessChain %_ptr_Function_float %_4_satPt %int_0
|
||||
OpStore %147 %float_1
|
||||
%148 = OpAccessChain %_ptr_Function_float %_3_midPt %int_2
|
||||
OpStore %148 %float_1
|
||||
OpBranch %141
|
||||
%140 = OpLabel
|
||||
%149 = OpLoad %v3float %_2_hueLumColor
|
||||
%150 = OpVectorShuffle %v3float %149 %149 2 1 0
|
||||
%151 = OpLoad %v3float %_2_hueLumColor
|
||||
%152 = OpVectorShuffle %v3float %151 %151 2 2 2
|
||||
%153 = OpFSub %v3float %150 %152
|
||||
OpStore %_2_hueLumColor %153
|
||||
%154 = OpAccessChain %_ptr_Function_float %_4_satPt %int_0
|
||||
OpStore %154 %float_1
|
||||
%155 = OpAccessChain %_ptr_Function_float %_3_midPt %int_1
|
||||
OpStore %155 %float_1
|
||||
OpBranch %141
|
||||
%141 = OpLabel
|
||||
OpBranch %126
|
||||
%126 = OpLabel
|
||||
OpBranch %77
|
||||
%77 = OpLabel
|
||||
%156 = OpLoad %v3float %_2_hueLumColor
|
||||
%157 = OpCompositeExtract %float %156 2
|
||||
%158 = OpFOrdGreaterThan %bool %157 %float_0
|
||||
OpSelectionMerge %160 None
|
||||
OpBranchConditional %158 %159 %160
|
||||
%159 = OpLabel
|
||||
%161 = OpLoad %v3float %_3_midPt
|
||||
%162 = OpLoad %v3float %_2_hueLumColor
|
||||
%163 = OpCompositeExtract %float %162 1
|
||||
%164 = OpLoad %v3float %_2_hueLumColor
|
||||
%165 = OpCompositeExtract %float %164 2
|
||||
%166 = OpFDiv %float %163 %165
|
||||
%167 = OpVectorTimesScalar %v3float %161 %166
|
||||
OpStore %_3_midPt %167
|
||||
%168 = OpLoad %v3float %_3_midPt
|
||||
%169 = OpLoad %v3float %_4_satPt
|
||||
%170 = OpFAdd %v3float %168 %169
|
||||
%173 = OpLoad %v3float %r
|
||||
%174 = OpCompositeExtract %float %173 0
|
||||
%175 = OpLoad %v3float %r
|
||||
%176 = OpCompositeExtract %float %175 1
|
||||
%172 = OpExtInst %float %1 FMax %174 %176
|
||||
%177 = OpLoad %v3float %r
|
||||
%178 = OpCompositeExtract %float %177 2
|
||||
%171 = OpExtInst %float %1 FMax %172 %178
|
||||
%181 = OpLoad %v3float %r
|
||||
%182 = OpCompositeExtract %float %181 0
|
||||
%183 = OpLoad %v3float %r
|
||||
%184 = OpCompositeExtract %float %183 1
|
||||
%180 = OpExtInst %float %1 FMin %182 %184
|
||||
%185 = OpLoad %v3float %r
|
||||
%186 = OpCompositeExtract %float %185 2
|
||||
%179 = OpExtInst %float %1 FMin %180 %186
|
||||
%187 = OpFSub %float %171 %179
|
||||
%188 = OpVectorTimesScalar %v3float %170 %187
|
||||
OpStore %_2_hueLumColor %188
|
||||
OpBranch %160
|
||||
%160 = OpLabel
|
||||
%189 = OpLoad %v3float %_2_hueLumColor
|
||||
OpStore %l %189
|
||||
%190 = OpLoad %v3float %dsa
|
||||
OpStore %r %190
|
||||
OpBranch %63
|
||||
%63 = OpLabel
|
||||
%197 = OpLoad %v3float %r
|
||||
%192 = OpDot %float %196 %197
|
||||
OpStore %_5_lum %192
|
||||
%199 = OpLoad %float %_5_lum
|
||||
%201 = OpLoad %v3float %l
|
||||
%200 = OpDot %float %196 %201
|
||||
%202 = OpFSub %float %199 %200
|
||||
%203 = OpLoad %v3float %l
|
||||
%204 = OpCompositeConstruct %v3float %202 %202 %202
|
||||
%205 = OpFAdd %v3float %204 %203
|
||||
OpStore %_6_result %205
|
||||
%209 = OpLoad %v3float %_6_result
|
||||
%210 = OpCompositeExtract %float %209 0
|
||||
%211 = OpLoad %v3float %_6_result
|
||||
%212 = OpCompositeExtract %float %211 1
|
||||
%208 = OpExtInst %float %1 FMin %210 %212
|
||||
%213 = OpLoad %v3float %_6_result
|
||||
%214 = OpCompositeExtract %float %213 2
|
||||
%207 = OpExtInst %float %1 FMin %208 %214
|
||||
OpStore %_7_minComp %207
|
||||
%218 = OpLoad %v3float %_6_result
|
||||
%219 = OpCompositeExtract %float %218 0
|
||||
%220 = OpLoad %v3float %_6_result
|
||||
%221 = OpCompositeExtract %float %220 1
|
||||
%217 = OpExtInst %float %1 FMax %219 %221
|
||||
%222 = OpLoad %v3float %_6_result
|
||||
%223 = OpCompositeExtract %float %222 2
|
||||
%216 = OpExtInst %float %1 FMax %217 %223
|
||||
OpStore %_8_maxComp %216
|
||||
%225 = OpLoad %float %_7_minComp
|
||||
%226 = OpFOrdLessThan %bool %225 %float_0
|
||||
OpSelectionMerge %228 None
|
||||
OpBranchConditional %226 %227 %228
|
||||
%227 = OpLabel
|
||||
%229 = OpLoad %float %_5_lum
|
||||
%230 = OpLoad %float %_7_minComp
|
||||
%231 = OpFUnordNotEqual %bool %229 %230
|
||||
OpBranch %228
|
||||
%228 = OpLabel
|
||||
%232 = OpPhi %bool %false %63 %231 %227
|
||||
OpSelectionMerge %234 None
|
||||
OpBranchConditional %232 %233 %234
|
||||
%233 = OpLabel
|
||||
%235 = OpLoad %float %_5_lum
|
||||
%236 = OpLoad %v3float %_6_result
|
||||
%237 = OpLoad %float %_5_lum
|
||||
%238 = OpCompositeConstruct %v3float %237 %237 %237
|
||||
%239 = OpFSub %v3float %236 %238
|
||||
%240 = OpLoad %float %_5_lum
|
||||
%241 = OpLoad %float %_5_lum
|
||||
%242 = OpLoad %float %_7_minComp
|
||||
%243 = OpFSub %float %241 %242
|
||||
%244 = OpFDiv %float %240 %243
|
||||
%245 = OpVectorTimesScalar %v3float %239 %244
|
||||
%246 = OpCompositeConstruct %v3float %235 %235 %235
|
||||
%247 = OpFAdd %v3float %246 %245
|
||||
OpStore %_6_result %247
|
||||
OpBranch %234
|
||||
%234 = OpLabel
|
||||
%248 = OpLoad %float %_8_maxComp
|
||||
%249 = OpLoad %float %alpha
|
||||
%250 = OpFOrdGreaterThan %bool %248 %249
|
||||
OpSelectionMerge %252 None
|
||||
OpBranchConditional %250 %251 %252
|
||||
%251 = OpLabel
|
||||
%253 = OpLoad %float %_8_maxComp
|
||||
%254 = OpLoad %float %_5_lum
|
||||
%255 = OpFUnordNotEqual %bool %253 %254
|
||||
OpBranch %252
|
||||
%252 = OpLabel
|
||||
%256 = OpPhi %bool %false %234 %255 %251
|
||||
OpSelectionMerge %258 None
|
||||
OpBranchConditional %256 %257 %258
|
||||
%257 = OpLabel
|
||||
%259 = OpLoad %float %_5_lum
|
||||
%260 = OpLoad %v3float %_6_result
|
||||
%261 = OpLoad %float %_5_lum
|
||||
%262 = OpCompositeConstruct %v3float %261 %261 %261
|
||||
%263 = OpFSub %v3float %260 %262
|
||||
%264 = OpLoad %float %alpha
|
||||
%265 = OpLoad %float %_5_lum
|
||||
%266 = OpFSub %float %264 %265
|
||||
%267 = OpVectorTimesScalar %v3float %263 %266
|
||||
%268 = OpLoad %float %_8_maxComp
|
||||
%269 = OpLoad %float %_5_lum
|
||||
%270 = OpFSub %float %268 %269
|
||||
%271 = OpFDiv %float %float_1 %270
|
||||
%272 = OpVectorTimesScalar %v3float %267 %271
|
||||
%273 = OpCompositeConstruct %v3float %259 %259 %259
|
||||
%274 = OpFAdd %v3float %273 %272
|
||||
OpStore %_6_result %274
|
||||
OpBranch %258
|
||||
%258 = OpLabel
|
||||
%275 = OpLoad %v3float %_6_result
|
||||
%276 = OpLoad %v4float %18
|
||||
%277 = OpVectorShuffle %v3float %276 %276 0 1 2
|
||||
%278 = OpFAdd %v3float %275 %277
|
||||
%279 = OpLoad %v3float %dsa
|
||||
%280 = OpFSub %v3float %278 %279
|
||||
%281 = OpLoad %v4float %17
|
||||
%282 = OpVectorShuffle %v3float %281 %281 0 1 2
|
||||
%283 = OpFAdd %v3float %280 %282
|
||||
%284 = OpLoad %v3float %sda
|
||||
%285 = OpFSub %v3float %283 %284
|
||||
%286 = OpCompositeExtract %float %285 0
|
||||
%287 = OpCompositeExtract %float %285 1
|
||||
%288 = OpCompositeExtract %float %285 2
|
||||
%289 = OpLoad %v4float %17
|
||||
%290 = OpCompositeExtract %float %289 3
|
||||
%291 = OpLoad %v4float %18
|
||||
%292 = OpCompositeExtract %float %291 3
|
||||
%293 = OpFAdd %float %290 %292
|
||||
%294 = OpLoad %float %alpha
|
||||
%295 = OpFSub %float %293 %294
|
||||
%296 = OpCompositeConstruct %v4float %286 %287 %288 %295
|
||||
OpReturnValue %296
|
||||
%134 = OpLoad %v3float %r
|
||||
%129 = OpDot %float %133 %134
|
||||
OpStore %_4_lum %129
|
||||
%136 = OpLoad %float %_4_lum
|
||||
%138 = OpLoad %v3float %l
|
||||
%137 = OpDot %float %133 %138
|
||||
%139 = OpFSub %float %136 %137
|
||||
%140 = OpLoad %v3float %l
|
||||
%141 = OpCompositeConstruct %v3float %139 %139 %139
|
||||
%142 = OpFAdd %v3float %141 %140
|
||||
OpStore %_5_result %142
|
||||
%146 = OpLoad %v3float %_5_result
|
||||
%147 = OpCompositeExtract %float %146 0
|
||||
%148 = OpLoad %v3float %_5_result
|
||||
%149 = OpCompositeExtract %float %148 1
|
||||
%145 = OpExtInst %float %1 FMin %147 %149
|
||||
%150 = OpLoad %v3float %_5_result
|
||||
%151 = OpCompositeExtract %float %150 2
|
||||
%144 = OpExtInst %float %1 FMin %145 %151
|
||||
OpStore %_6_minComp %144
|
||||
%155 = OpLoad %v3float %_5_result
|
||||
%156 = OpCompositeExtract %float %155 0
|
||||
%157 = OpLoad %v3float %_5_result
|
||||
%158 = OpCompositeExtract %float %157 1
|
||||
%154 = OpExtInst %float %1 FMax %156 %158
|
||||
%159 = OpLoad %v3float %_5_result
|
||||
%160 = OpCompositeExtract %float %159 2
|
||||
%153 = OpExtInst %float %1 FMax %154 %160
|
||||
OpStore %_7_maxComp %153
|
||||
%162 = OpLoad %float %_6_minComp
|
||||
%163 = OpFOrdLessThan %bool %162 %float_0
|
||||
OpSelectionMerge %165 None
|
||||
OpBranchConditional %163 %164 %165
|
||||
%164 = OpLabel
|
||||
%166 = OpLoad %float %_4_lum
|
||||
%167 = OpLoad %float %_6_minComp
|
||||
%168 = OpFUnordNotEqual %bool %166 %167
|
||||
OpBranch %165
|
||||
%165 = OpLabel
|
||||
%169 = OpPhi %bool %false %84 %168 %164
|
||||
OpSelectionMerge %171 None
|
||||
OpBranchConditional %169 %170 %171
|
||||
%170 = OpLabel
|
||||
%172 = OpLoad %float %_4_lum
|
||||
%173 = OpLoad %v3float %_5_result
|
||||
%174 = OpLoad %float %_4_lum
|
||||
%175 = OpCompositeConstruct %v3float %174 %174 %174
|
||||
%176 = OpFSub %v3float %173 %175
|
||||
%177 = OpLoad %float %_4_lum
|
||||
%178 = OpLoad %float %_4_lum
|
||||
%179 = OpLoad %float %_6_minComp
|
||||
%180 = OpFSub %float %178 %179
|
||||
%181 = OpFDiv %float %177 %180
|
||||
%182 = OpVectorTimesScalar %v3float %176 %181
|
||||
%183 = OpCompositeConstruct %v3float %172 %172 %172
|
||||
%184 = OpFAdd %v3float %183 %182
|
||||
OpStore %_5_result %184
|
||||
OpBranch %171
|
||||
%171 = OpLabel
|
||||
%185 = OpLoad %float %_7_maxComp
|
||||
%186 = OpLoad %float %alpha
|
||||
%187 = OpFOrdGreaterThan %bool %185 %186
|
||||
OpSelectionMerge %189 None
|
||||
OpBranchConditional %187 %188 %189
|
||||
%188 = OpLabel
|
||||
%190 = OpLoad %float %_7_maxComp
|
||||
%191 = OpLoad %float %_4_lum
|
||||
%192 = OpFUnordNotEqual %bool %190 %191
|
||||
OpBranch %189
|
||||
%189 = OpLabel
|
||||
%193 = OpPhi %bool %false %171 %192 %188
|
||||
OpSelectionMerge %195 None
|
||||
OpBranchConditional %193 %194 %195
|
||||
%194 = OpLabel
|
||||
%196 = OpLoad %float %_4_lum
|
||||
%197 = OpLoad %v3float %_5_result
|
||||
%198 = OpLoad %float %_4_lum
|
||||
%199 = OpCompositeConstruct %v3float %198 %198 %198
|
||||
%200 = OpFSub %v3float %197 %199
|
||||
%201 = OpLoad %float %alpha
|
||||
%202 = OpLoad %float %_4_lum
|
||||
%203 = OpFSub %float %201 %202
|
||||
%204 = OpVectorTimesScalar %v3float %200 %203
|
||||
%205 = OpLoad %float %_7_maxComp
|
||||
%206 = OpLoad %float %_4_lum
|
||||
%207 = OpFSub %float %205 %206
|
||||
%208 = OpFDiv %float %float_1 %207
|
||||
%209 = OpVectorTimesScalar %v3float %204 %208
|
||||
%210 = OpCompositeConstruct %v3float %196 %196 %196
|
||||
%211 = OpFAdd %v3float %210 %209
|
||||
OpStore %_5_result %211
|
||||
OpBranch %195
|
||||
%195 = OpLabel
|
||||
%212 = OpLoad %v3float %_5_result
|
||||
%213 = OpLoad %v4float %41
|
||||
%214 = OpVectorShuffle %v3float %213 %213 0 1 2
|
||||
%215 = OpFAdd %v3float %212 %214
|
||||
%216 = OpLoad %v3float %dsa
|
||||
%217 = OpFSub %v3float %215 %216
|
||||
%218 = OpLoad %v4float %40
|
||||
%219 = OpVectorShuffle %v3float %218 %218 0 1 2
|
||||
%220 = OpFAdd %v3float %217 %219
|
||||
%221 = OpLoad %v3float %sda
|
||||
%222 = OpFSub %v3float %220 %221
|
||||
%223 = OpCompositeExtract %float %222 0
|
||||
%224 = OpCompositeExtract %float %222 1
|
||||
%225 = OpCompositeExtract %float %222 2
|
||||
%226 = OpLoad %v4float %40
|
||||
%227 = OpCompositeExtract %float %226 3
|
||||
%228 = OpLoad %v4float %41
|
||||
%229 = OpCompositeExtract %float %228 3
|
||||
%230 = OpFAdd %float %227 %229
|
||||
%231 = OpLoad %float %alpha
|
||||
%232 = OpFSub %float %230 %231
|
||||
%233 = OpCompositeConstruct %v4float %223 %224 %225 %232
|
||||
OpReturnValue %233
|
||||
OpFunctionEnd
|
||||
%main = OpFunction %void None %298
|
||||
%299 = OpLabel
|
||||
%303 = OpVariable %_ptr_Function_v4float Function
|
||||
%306 = OpVariable %_ptr_Function_v4float Function
|
||||
%308 = OpVariable %_ptr_Function_bool Function
|
||||
%309 = OpVariable %_ptr_Function_bool Function
|
||||
%300 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0
|
||||
%302 = OpLoad %v4float %300
|
||||
OpStore %303 %302
|
||||
%304 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1
|
||||
%305 = OpLoad %v4float %304
|
||||
OpStore %306 %305
|
||||
OpStore %308 %true
|
||||
OpStore %309 %true
|
||||
%310 = OpFunctionCall %v4float %blend_hslc_h4h4h4bb %303 %306 %308 %309
|
||||
OpStore %sk_FragColor %310
|
||||
%main = OpFunction %void None %235
|
||||
%236 = OpLabel
|
||||
%242 = OpVariable %_ptr_Function_v4float Function
|
||||
%246 = OpVariable %_ptr_Function_v4float Function
|
||||
%248 = OpVariable %_ptr_Function_bool Function
|
||||
%249 = OpVariable %_ptr_Function_bool Function
|
||||
%237 = OpAccessChain %_ptr_Uniform_v4float %12 %int_0
|
||||
%241 = OpLoad %v4float %237
|
||||
OpStore %242 %241
|
||||
%243 = OpAccessChain %_ptr_Uniform_v4float %12 %int_1
|
||||
%245 = OpLoad %v4float %243
|
||||
OpStore %246 %245
|
||||
OpStore %248 %true
|
||||
OpStore %249 %true
|
||||
%250 = OpFunctionCall %v4float %blend_hslc_h4h4h4bb %242 %246 %248 %249
|
||||
OpStore %sk_FragColor %250
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
@ -2,6 +2,9 @@
|
||||
out vec4 sk_FragColor;
|
||||
uniform vec4 src;
|
||||
uniform vec4 dst;
|
||||
float blend_color_saturation_Qhh3(vec3 color) {
|
||||
return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z);
|
||||
}
|
||||
vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) {
|
||||
float alpha = dst.w * src.w;
|
||||
vec3 sda = src.xyz * dst.w;
|
||||
@ -9,48 +12,22 @@ vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) {
|
||||
vec3 l = flip ? dsa : sda;
|
||||
vec3 r = flip ? sda : dsa;
|
||||
if (saturate) {
|
||||
vec3 _2_hueLumColor = l;
|
||||
vec3 _3_midPt = vec3(0.0);
|
||||
vec3 _4_satPt = vec3(0.0);
|
||||
if (_2_hueLumColor.x <= _2_hueLumColor.y) {
|
||||
if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor -= _2_hueLumColor.xxx;
|
||||
_3_midPt.y = (_4_satPt.z = 1.0);
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.xzy - _2_hueLumColor.xxx;
|
||||
_3_midPt.z = (_4_satPt.y = 1.0);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zxy - _2_hueLumColor.zzz;
|
||||
_3_midPt.x = (_4_satPt.y = 1.0);
|
||||
}
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yxz - _2_hueLumColor.yyy;
|
||||
_3_midPt.x = (_4_satPt.z = 1.0);
|
||||
} else if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yzx - _2_hueLumColor.yyy;
|
||||
_3_midPt.z = (_4_satPt.x = 1.0);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zyx - _2_hueLumColor.zzz;
|
||||
_3_midPt.y = (_4_satPt.x = 1.0);
|
||||
}
|
||||
if (_2_hueLumColor.z > 0.0) {
|
||||
_3_midPt *= _2_hueLumColor.y / _2_hueLumColor.z;
|
||||
_2_hueLumColor = (_3_midPt + _4_satPt) * (max(max(r.x, r.y), r.z) - min(min(r.x, r.y), r.z));
|
||||
}
|
||||
l = _2_hueLumColor;
|
||||
float _2_mn = min(min(l.x, l.y), l.z);
|
||||
float _3_mx = max(max(l.x, l.y), l.z);
|
||||
l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : vec3(0.0);
|
||||
r = dsa;
|
||||
}
|
||||
float _5_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r);
|
||||
vec3 _6_result = (_5_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l;
|
||||
float _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
|
||||
float _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
|
||||
if (_7_minComp < 0.0 && _5_lum != _7_minComp) {
|
||||
_6_result = _5_lum + (_6_result - _5_lum) * (_5_lum / (_5_lum - _7_minComp));
|
||||
float _4_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r);
|
||||
vec3 _5_result = (_4_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l;
|
||||
float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z);
|
||||
float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z);
|
||||
if (_6_minComp < 0.0 && _4_lum != _6_minComp) {
|
||||
_5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp));
|
||||
}
|
||||
if (_8_maxComp > alpha && _8_maxComp != _5_lum) {
|
||||
_6_result = _5_lum + ((_6_result - _5_lum) * (alpha - _5_lum)) / (_8_maxComp - _5_lum);
|
||||
if (_7_maxComp > alpha && _7_maxComp != _4_lum) {
|
||||
_5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum);
|
||||
}
|
||||
return vec4((((_6_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
}
|
||||
void main() {
|
||||
sk_FragColor = blend_hslc_h4h4h4bb(src, dst, true, true);
|
||||
|
@ -10,6 +10,9 @@ struct Inputs {
|
||||
struct Outputs {
|
||||
half4 sk_FragColor [[color(0)]];
|
||||
};
|
||||
half blend_color_saturation_Qhh3(half3 color) {
|
||||
return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z);
|
||||
}
|
||||
half4 blend_hslc_h4h4h4bb(half4 src, half4 dst, bool flip, bool saturate) {
|
||||
half alpha = dst.w * src.w;
|
||||
half3 sda = src.xyz * dst.w;
|
||||
@ -17,48 +20,22 @@ half4 blend_hslc_h4h4h4bb(half4 src, half4 dst, bool flip, bool saturate) {
|
||||
half3 l = flip ? dsa : sda;
|
||||
half3 r = flip ? sda : dsa;
|
||||
if (saturate) {
|
||||
half3 _2_hueLumColor = l;
|
||||
half3 _3_midPt = half3(0.0h);
|
||||
half3 _4_satPt = half3(0.0h);
|
||||
if (_2_hueLumColor.x <= _2_hueLumColor.y) {
|
||||
if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor -= _2_hueLumColor.xxx;
|
||||
_3_midPt.y = (_4_satPt.z = 1.0h);
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.xzy - _2_hueLumColor.xxx;
|
||||
_3_midPt.z = (_4_satPt.y = 1.0h);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zxy - _2_hueLumColor.zzz;
|
||||
_3_midPt.x = (_4_satPt.y = 1.0h);
|
||||
}
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yxz - _2_hueLumColor.yyy;
|
||||
_3_midPt.x = (_4_satPt.z = 1.0h);
|
||||
} else if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yzx - _2_hueLumColor.yyy;
|
||||
_3_midPt.z = (_4_satPt.x = 1.0h);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zyx - _2_hueLumColor.zzz;
|
||||
_3_midPt.y = (_4_satPt.x = 1.0h);
|
||||
}
|
||||
if (_2_hueLumColor.z > 0.0h) {
|
||||
_3_midPt *= _2_hueLumColor.y / _2_hueLumColor.z;
|
||||
_2_hueLumColor = (_3_midPt + _4_satPt) * (max(max(r.x, r.y), r.z) - min(min(r.x, r.y), r.z));
|
||||
}
|
||||
l = _2_hueLumColor;
|
||||
half _2_mn = min(min(l.x, l.y), l.z);
|
||||
half _3_mx = max(max(l.x, l.y), l.z);
|
||||
l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : half3(0.0h);
|
||||
r = dsa;
|
||||
}
|
||||
half _5_lum = dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), r);
|
||||
half3 _6_result = (_5_lum - dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), l)) + l;
|
||||
half _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
|
||||
half _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
|
||||
if (_7_minComp < 0.0h && _5_lum != _7_minComp) {
|
||||
_6_result = _5_lum + (_6_result - _5_lum) * (_5_lum / (_5_lum - _7_minComp));
|
||||
half _4_lum = dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), r);
|
||||
half3 _5_result = (_4_lum - dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), l)) + l;
|
||||
half _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z);
|
||||
half _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z);
|
||||
if (_6_minComp < 0.0h && _4_lum != _6_minComp) {
|
||||
_5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp));
|
||||
}
|
||||
if (_8_maxComp > alpha && _8_maxComp != _5_lum) {
|
||||
_6_result = _5_lum + ((_6_result - _5_lum) * (alpha - _5_lum)) / (_8_maxComp - _5_lum);
|
||||
if (_7_maxComp > alpha && _7_maxComp != _4_lum) {
|
||||
_5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum);
|
||||
}
|
||||
return half4((((_6_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
return half4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
}
|
||||
fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
|
||||
Outputs _out;
|
||||
|
@ -2,6 +2,9 @@
|
||||
out vec4 sk_FragColor;
|
||||
uniform vec4 src;
|
||||
uniform vec4 dst;
|
||||
float blend_color_saturation_Qhh3(vec3 color) {
|
||||
return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z);
|
||||
}
|
||||
vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) {
|
||||
float alpha = dst.w * src.w;
|
||||
vec3 sda = src.xyz * dst.w;
|
||||
@ -9,48 +12,22 @@ vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) {
|
||||
vec3 l = flip ? dsa : sda;
|
||||
vec3 r = flip ? sda : dsa;
|
||||
if (saturate) {
|
||||
vec3 _2_hueLumColor = l;
|
||||
vec3 _3_midPt = vec3(0.0);
|
||||
vec3 _4_satPt = vec3(0.0);
|
||||
if (_2_hueLumColor.x <= _2_hueLumColor.y) {
|
||||
if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor -= _2_hueLumColor.xxx;
|
||||
_3_midPt.y = (_4_satPt.z = 1.0);
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.xzy - _2_hueLumColor.xxx;
|
||||
_3_midPt.z = (_4_satPt.y = 1.0);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zxy - _2_hueLumColor.zzz;
|
||||
_3_midPt.x = (_4_satPt.y = 1.0);
|
||||
}
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yxz - _2_hueLumColor.yyy;
|
||||
_3_midPt.x = (_4_satPt.z = 1.0);
|
||||
} else if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yzx - _2_hueLumColor.yyy;
|
||||
_3_midPt.z = (_4_satPt.x = 1.0);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zyx - _2_hueLumColor.zzz;
|
||||
_3_midPt.y = (_4_satPt.x = 1.0);
|
||||
}
|
||||
if (_2_hueLumColor.z > 0.0) {
|
||||
_3_midPt *= _2_hueLumColor.y / _2_hueLumColor.z;
|
||||
_2_hueLumColor = (_3_midPt + _4_satPt) * (max(max(r.x, r.y), r.z) - min(min(r.x, r.y), r.z));
|
||||
}
|
||||
l = _2_hueLumColor;
|
||||
float _2_mn = min(min(l.x, l.y), l.z);
|
||||
float _3_mx = max(max(l.x, l.y), l.z);
|
||||
l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : vec3(0.0);
|
||||
r = dsa;
|
||||
}
|
||||
float _5_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r);
|
||||
vec3 _6_result = (_5_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l;
|
||||
float _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
|
||||
float _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
|
||||
if (_7_minComp < 0.0 && _5_lum != _7_minComp) {
|
||||
_6_result = _5_lum + (_6_result - _5_lum) * (_5_lum / (_5_lum - _7_minComp));
|
||||
float _4_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r);
|
||||
vec3 _5_result = (_4_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l;
|
||||
float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z);
|
||||
float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z);
|
||||
if (_6_minComp < 0.0 && _4_lum != _6_minComp) {
|
||||
_5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp));
|
||||
}
|
||||
if (_8_maxComp > alpha && _8_maxComp != _5_lum) {
|
||||
_6_result = _5_lum + ((_6_result - _5_lum) * (alpha - _5_lum)) / (_8_maxComp - _5_lum);
|
||||
if (_7_maxComp > alpha && _7_maxComp != _4_lum) {
|
||||
_5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum);
|
||||
}
|
||||
return vec4((((_6_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
}
|
||||
void main() {
|
||||
sk_FragColor = blend_hslc_h4h4h4bb(src, dst, true, true);
|
||||
|
@ -7,6 +7,9 @@ vec4 blend_src_in_h4h4h4(vec4 src, vec4 dst) {
|
||||
vec4 blend_dst_in_h4h4h4(vec4 src, vec4 dst) {
|
||||
return dst * src.w;
|
||||
}
|
||||
float blend_color_saturation_Qhh3(vec3 color) {
|
||||
return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z);
|
||||
}
|
||||
vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) {
|
||||
float alpha = dst.w * src.w;
|
||||
vec3 sda = src.xyz * dst.w;
|
||||
@ -14,48 +17,22 @@ vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) {
|
||||
vec3 l = flip ? dsa : sda;
|
||||
vec3 r = flip ? sda : dsa;
|
||||
if (saturate) {
|
||||
vec3 _2_hueLumColor = l;
|
||||
vec3 _3_midPt = vec3(0.0);
|
||||
vec3 _4_satPt = vec3(0.0);
|
||||
if (_2_hueLumColor.x <= _2_hueLumColor.y) {
|
||||
if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor -= _2_hueLumColor.xxx;
|
||||
_3_midPt.y = (_4_satPt.z = 1.0);
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.xzy - _2_hueLumColor.xxx;
|
||||
_3_midPt.z = (_4_satPt.y = 1.0);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zxy - _2_hueLumColor.zzz;
|
||||
_3_midPt.x = (_4_satPt.y = 1.0);
|
||||
}
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yxz - _2_hueLumColor.yyy;
|
||||
_3_midPt.x = (_4_satPt.z = 1.0);
|
||||
} else if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yzx - _2_hueLumColor.yyy;
|
||||
_3_midPt.z = (_4_satPt.x = 1.0);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zyx - _2_hueLumColor.zzz;
|
||||
_3_midPt.y = (_4_satPt.x = 1.0);
|
||||
}
|
||||
if (_2_hueLumColor.z > 0.0) {
|
||||
_3_midPt *= _2_hueLumColor.y / _2_hueLumColor.z;
|
||||
_2_hueLumColor = (_3_midPt + _4_satPt) * (max(max(r.x, r.y), r.z) - min(min(r.x, r.y), r.z));
|
||||
}
|
||||
l = _2_hueLumColor;
|
||||
float _2_mn = min(min(l.x, l.y), l.z);
|
||||
float _3_mx = max(max(l.x, l.y), l.z);
|
||||
l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : vec3(0.0);
|
||||
r = dsa;
|
||||
}
|
||||
float _5_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r);
|
||||
vec3 _6_result = (_5_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l;
|
||||
float _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
|
||||
float _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
|
||||
if (_7_minComp < 0.0 && _5_lum != _7_minComp) {
|
||||
_6_result = _5_lum + (_6_result - _5_lum) * (_5_lum / (_5_lum - _7_minComp));
|
||||
float _4_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r);
|
||||
vec3 _5_result = (_4_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l;
|
||||
float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z);
|
||||
float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z);
|
||||
if (_6_minComp < 0.0 && _4_lum != _6_minComp) {
|
||||
_5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp));
|
||||
}
|
||||
if (_8_maxComp > alpha && _8_maxComp != _5_lum) {
|
||||
_6_result = _5_lum + ((_6_result - _5_lum) * (alpha - _5_lum)) / (_8_maxComp - _5_lum);
|
||||
if (_7_maxComp > alpha && _7_maxComp != _4_lum) {
|
||||
_5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum);
|
||||
}
|
||||
return vec4((((_6_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
}
|
||||
vec4 blend_hue_h4h4h4(vec4 src, vec4 dst) {
|
||||
return blend_hslc_h4h4h4bb(src, dst, false, true);
|
||||
|
@ -1,6 +1,9 @@
|
||||
|
||||
out vec4 sk_FragColor;
|
||||
uniform vec4 color;
|
||||
float blend_color_saturation_Qhh3(vec3 color) {
|
||||
return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z);
|
||||
}
|
||||
vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) {
|
||||
float alpha = dst.w * src.w;
|
||||
vec3 sda = src.xyz * dst.w;
|
||||
@ -8,48 +11,22 @@ vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) {
|
||||
vec3 l = flip ? dsa : sda;
|
||||
vec3 r = flip ? sda : dsa;
|
||||
if (saturate) {
|
||||
vec3 _2_hueLumColor = l;
|
||||
vec3 _3_midPt = vec3(0.0);
|
||||
vec3 _4_satPt = vec3(0.0);
|
||||
if (_2_hueLumColor.x <= _2_hueLumColor.y) {
|
||||
if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor -= _2_hueLumColor.xxx;
|
||||
_3_midPt.y = (_4_satPt.z = 1.0);
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.xzy - _2_hueLumColor.xxx;
|
||||
_3_midPt.z = (_4_satPt.y = 1.0);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zxy - _2_hueLumColor.zzz;
|
||||
_3_midPt.x = (_4_satPt.y = 1.0);
|
||||
}
|
||||
} else if (_2_hueLumColor.x <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yxz - _2_hueLumColor.yyy;
|
||||
_3_midPt.x = (_4_satPt.z = 1.0);
|
||||
} else if (_2_hueLumColor.y <= _2_hueLumColor.z) {
|
||||
_2_hueLumColor = _2_hueLumColor.yzx - _2_hueLumColor.yyy;
|
||||
_3_midPt.z = (_4_satPt.x = 1.0);
|
||||
} else {
|
||||
_2_hueLumColor = _2_hueLumColor.zyx - _2_hueLumColor.zzz;
|
||||
_3_midPt.y = (_4_satPt.x = 1.0);
|
||||
}
|
||||
if (_2_hueLumColor.z > 0.0) {
|
||||
_3_midPt *= _2_hueLumColor.y / _2_hueLumColor.z;
|
||||
_2_hueLumColor = (_3_midPt + _4_satPt) * (max(max(r.x, r.y), r.z) - min(min(r.x, r.y), r.z));
|
||||
}
|
||||
l = _2_hueLumColor;
|
||||
float _2_mn = min(min(l.x, l.y), l.z);
|
||||
float _3_mx = max(max(l.x, l.y), l.z);
|
||||
l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : vec3(0.0);
|
||||
r = dsa;
|
||||
}
|
||||
float _5_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r);
|
||||
vec3 _6_result = (_5_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l;
|
||||
float _7_minComp = min(min(_6_result.x, _6_result.y), _6_result.z);
|
||||
float _8_maxComp = max(max(_6_result.x, _6_result.y), _6_result.z);
|
||||
if (_7_minComp < 0.0 && _5_lum != _7_minComp) {
|
||||
_6_result = _5_lum + (_6_result - _5_lum) * (_5_lum / (_5_lum - _7_minComp));
|
||||
float _4_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r);
|
||||
vec3 _5_result = (_4_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l;
|
||||
float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z);
|
||||
float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z);
|
||||
if (_6_minComp < 0.0 && _4_lum != _6_minComp) {
|
||||
_5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp));
|
||||
}
|
||||
if (_8_maxComp > alpha && _8_maxComp != _5_lum) {
|
||||
_6_result = _5_lum + ((_6_result - _5_lum) * (alpha - _5_lum)) / (_8_maxComp - _5_lum);
|
||||
if (_7_maxComp > alpha && _7_maxComp != _4_lum) {
|
||||
_5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum);
|
||||
}
|
||||
return vec4((((_6_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha);
|
||||
}
|
||||
void main() {
|
||||
float _1_c = color.x * color.y + color.z;
|
||||
|
Loading…
Reference in New Issue
Block a user