summaryrefslogtreecommitdiff
path: root/shaders/skia/22-21.shader_test
blob: 390bf41680ad337402911e32fdd923febf1b9d2b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
[require]
GLSL >= 1.40

[fragment shader]
#version 140

out vec4 sk_FragColor;
uniform vec4 uleftBorderColor_Stage1_c0_c0;
uniform vec4 urightBorderColor_Stage1_c0_c0;
uniform vec4 uscale01_Stage1_c0_c0_c1_c0;
uniform vec4 ubias01_Stage1_c0_c0_c1_c0;
uniform vec4 uscale23_Stage1_c0_c0_c1_c0;
uniform vec4 ubias23_Stage1_c0_c0_c1_c0;
uniform float uthreshold_Stage1_c0_c0_c1_c0;
uniform vec4 ucolor_Stage2_c1_c0_c0_c0;
uniform vec4 ucolor_Stage2_c2_c0_c0_c0;
noperspective in vec2 vTransformedCoords_0_Stage0;
flat in vec4 vcolor_Stage0;
vec4 RadialGradientLayout_Stage1_c0_c0_c0_c0(vec4 _input) {
    vec4 _output;
    float t = length(vTransformedCoords_0_Stage0);
    _output = vec4(t, 1.0, 0.0, 0.0);
    return _output;
}
vec4 DualIntervalGradientColorizer_Stage1_c0_c0_c1_c0(vec4 _input) {
    vec4 _output;
    float t = _input.x;
    vec4 scale, bias;
    if (t < uthreshold_Stage1_c0_c0_c1_c0) {
        scale = uscale01_Stage1_c0_c0_c1_c0;
        bias = ubias01_Stage1_c0_c0_c1_c0;
    } else {
        scale = uscale23_Stage1_c0_c0_c1_c0;
        bias = ubias23_Stage1_c0_c0_c1_c0;
    }
    _output = t * scale + bias;
    return _output;
}
vec4 ClampedGradientEffect_Stage1_c0_c0(vec4 _input) {
    vec4 _output;
    vec4 t = RadialGradientLayout_Stage1_c0_c0_c0_c0(vec4(1.0));
    if (t.x < 0.0) {
        _output = uleftBorderColor_Stage1_c0_c0;
    } else if (t.x > 1.0) {
        _output = urightBorderColor_Stage1_c0_c0;
    } else {
        _output = DualIntervalGradientColorizer_Stage1_c0_c0_c1_c0(t);
    }
    return _output;
}
vec4 ConstColorProcessor_Stage2_c1_c0_c0_c0(vec4 _input) {
    vec4 _output;
    {
        _output = ucolor_Stage2_c1_c0_c0_c0;
    }
    return _output;
}
float _guarded_divide(float n, float d) {
    return n / d;
}
float _color_burn_component(float sc, float sa, float dc, float da) {
    if (da == dc) {
        return (sa * da + sc * (1.0 - da)) + dc * (1.0 - sa);
    } else if (sc == 0.0) {
        return dc * (1.0 - sa);
    }
    float d = max(0.0, da - _guarded_divide((da - dc) * sa, sc));
    return (d * sa + sc * (1.0 - da)) + dc * (1.0 - sa);
}
vec4 blend_color_burn(vec4 src, vec4 dst) {
    return vec4(_color_burn_component(src.x, src.w, dst.x, dst.w), _color_burn_component(src.y, src.w, dst.y, dst.w), _color_burn_component(src.z, src.w, dst.z, dst.w), src.w + (1.0 - src.w) * dst.w);
}
vec4 ComposeOne_Stage2_c1_c0(vec4 _input) {
    vec4 _output;
    _output = blend_color_burn(ConstColorProcessor_Stage2_c1_c0_c0_c0(vec4(1.0)), _input);
    return _output;
}
vec4 ConstColorProcessor_Stage2_c2_c0_c0_c0(vec4 _input) {
    vec4 _output;
    {
        _output = ucolor_Stage2_c2_c0_c0_c0;
    }
    return _output;
}
float _blend_overlay_component(float sc, float sa, float dc, float da) {
    if (2.0 * dc <= da) {
        return (2.0 * sc) * dc;
    }
    return sa * da - (2.0 * (da - dc)) * (sa - sc);
}
vec4 blend_overlay(vec4 src, vec4 dst) {
    vec4 result = vec4(_blend_overlay_component(src.x, src.w, dst.x, dst.w), _blend_overlay_component(src.y, src.w, dst.y, dst.w), _blend_overlay_component(src.z, src.w, dst.z, dst.w), src.w + (1.0 - src.w) * dst.w);
    result.xyz += dst.xyz * (1.0 - src.w) + src.xyz * (1.0 - dst.w);
    return result;
}
vec4 ComposeOne_Stage2_c2_c0(vec4 _input) {
    vec4 _output;
    _output = blend_overlay(ConstColorProcessor_Stage2_c2_c0_c0_c0(vec4(1.0)), _input);
    return _output;
}
void main() {
    vec4 output_Stage1;
    {
        output_Stage1 = ClampedGradientEffect_Stage1_c0_c0(vec4(1.0, 1.0, 1.0, 1.0));
    }
    vec4 output_Stage2;
    {
        output_Stage2 = ComposeOne_Stage2_c2_c0(ComposeOne_Stage2_c1_c0(output_Stage1));
    }
    {
        sk_FragColor = output_Stage2;
    }
}

[vertex shader]
#version 140

uniform vec4 sk_RTAdjust;
uniform mat3 uCoordTransformMatrix_0_Stage0;
in vec2 position;
in vec4 color;
in vec2 localCoord;
noperspective out vec2 vTransformedCoords_0_Stage0;
flat out vec4 vcolor_Stage0;
void main() {
    vTransformedCoords_0_Stage0 = (uCoordTransformMatrix_0_Stage0 * vec3(localCoord, 1.0)).xy;
    vcolor_Stage0 = color;
    gl_Position = vec4(position.x, position.y, 0.0, 1.0);
    gl_Position = vec4(gl_Position.xy * sk_RTAdjust.xz + gl_Position.ww * sk_RTAdjust.yw, 0.0, gl_Position.w);
}