1 2const float sk_PrivkGuardedDivideEpsilon = false ? 1e-08 : 0.0; 3const float sk_PrivkMinNormalHalf = 6.10351562e-05; 4out vec4 sk_FragColor; 5uniform vec4 color; 6float blend_color_saturation_Qhh3(vec3 color); 7vec4 blend_hslc_h4h2h4h4(vec2 flipSat, vec4 src, vec4 dst); 8vec4 blend_dst_in_h4h4h4(vec4 src, vec4 dst); 9vec4 blend_hue_h4h4h4(vec4 src, vec4 dst); 10vec4 blend_src_in_h4h4h4(vec4 src, vec4 dst); 11float blend_color_saturation_Qhh3(vec3 color) { 12 return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z); 13} 14vec4 blend_hslc_h4h2h4h4(vec2 flipSat, vec4 src, vec4 dst) { 15 float alpha = dst.w * src.w; 16 vec3 sda = src.xyz * dst.w; 17 vec3 dsa = dst.xyz * src.w; 18 vec3 l = bool(flipSat.x) ? dsa : sda; 19 vec3 r = bool(flipSat.x) ? sda : dsa; 20 if (bool(flipSat.y)) { 21 float _2_mn = min(min(l.x, l.y), l.z); 22 float _3_mx = max(max(l.x, l.y), l.z); 23 l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : vec3(0.0); 24 r = dsa; 25 } 26 float _4_lum = dot(vec3(0.3, 0.59, 0.11), r); 27 vec3 _5_result = (_4_lum - dot(vec3(0.3, 0.59, 0.11), l)) + l; 28 float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z); 29 float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z); 30 if (_6_minComp < 0.0 && _4_lum != _6_minComp) { 31 _5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (((_4_lum - _6_minComp) + sk_PrivkMinNormalHalf) + sk_PrivkGuardedDivideEpsilon)); 32 } 33 if (_7_maxComp > alpha && _7_maxComp != _4_lum) { 34 _5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (((_7_maxComp - _4_lum) + sk_PrivkMinNormalHalf) + sk_PrivkGuardedDivideEpsilon); 35 } 36 return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha); 37} 38vec4 blend_dst_in_h4h4h4(vec4 src, vec4 dst) { 39 return dst * src.w; 40} 41vec4 blend_hue_h4h4h4(vec4 src, vec4 dst) { 42 return blend_hslc_h4h2h4h4(vec2(0.0, 1.0), src, dst); 43} 44vec4 blend_src_in_h4h4h4(vec4 src, vec4 dst) { 45 return src * dst.w; 46} 47float singleuse_h() { 48 return 1.25; 49} 50float add_hhh(float a, float b) { 51 float c = a + b; 52 return c; 53} 54float mul_hhh(float a, float b) { 55 return a * b; 56} 57float fused_multiply_add_hhhh(float a, float b, float c) { 58 return add_hhh(mul_hhh(a, b), c); 59} 60void main() { 61 sk_FragColor = vec4(fused_multiply_add_hhhh(color.x, color.y, color.z)); 62 sk_FragColor *= singleuse_h(); 63 sk_FragColor *= blend_src_in_h4h4h4(color.xxyy, color.zzww); 64 sk_FragColor *= blend_dst_in_h4h4h4(color.xxyy, color.zzww); 65 sk_FragColor *= blend_hue_h4h4h4(color, color.wwww); 66 sk_FragColor *= blend_hue_h4h4h4(color, color.wzyx); 67} 68