• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2const float sk_PrivkGuardedDivideEpsilon = false ? 1e-08 : 0.0;
3out vec4 sk_FragColor;
4uniform vec4 src;
5uniform vec4 dst;
6float color_burn_component_Qhh2h2(vec2 s, vec2 d);
7float color_burn_component_Qhh2h2(vec2 s, vec2 d) {
8    if (d.y == d.x) {
9        return (s.y * d.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
10    } else if (s.x == 0.0) {
11        return d.x * (1.0 - s.y);
12    } else {
13        float delta = max(0.0, d.y - ((d.y - d.x) * s.y) / (s.x + sk_PrivkGuardedDivideEpsilon));
14        return (delta * s.y + s.x * (1.0 - d.y)) + d.x * (1.0 - s.y);
15    }
16}
17void main() {
18    sk_FragColor = vec4(color_burn_component_Qhh2h2(src.xw, dst.xw), color_burn_component_Qhh2h2(src.yw, dst.yw), color_burn_component_Qhh2h2(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w);
19}
20