aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/effects/GrBlurredEdgeFragmentProcessor.fp
blob: fe5ffd5eb374585f13abaf581dff79dc96424173 (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
/*
 * Copyright 2017 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

@class {
    enum Mode {
        kGaussian_Mode = 0,
        kSmoothStep_Mode = 1
    };
}

layout(key) in int mode;

void main() {
    half factor = 1.0 - sk_InColor.a;
    @switch (mode) {
        case 0: // kGaussian_Mode
            factor = exp(-factor * factor * 4.0) - 0.018;
            break;
        case 1: // kSmoothstep_Mode
            factor = smoothstep(1.0, 0.0, factor);
            break;
    }
    sk_OutColor = half4(factor);
}