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

enum class Mode {
    kGaussian   = 0,
    kSmoothStep = 1
};

layout(key) in Mode mode;

void main() {
    half factor = 1.0 - sk_InColor.a;
    @switch (mode) {
        case Mode::kGaussian:
            factor = exp(-factor * factor * 4.0) - 0.018;
            break;
        case Mode::kSmoothStep:
            factor = smoothstep(1.0, 0.0, factor);
            break;
    }
    sk_OutColor = half4(factor);
}