aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/effects/GrUnpremulInputFragmentProcessor.fp
blob: 53ab9c9cb2e7adeaf98ec2aabe88797a17645356 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*
 * Copyright 2018 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

@optimizationFlags {
    kPreservesOpaqueInput_OptimizationFlag | kConstantOutputForConstantInput_OptimizationFlag
}

void main() {
    sk_OutColor = sk_InColor;
    half invAlpha = sk_InColor.a <= 0 ? 0 : 1 / sk_InColor.a;
    sk_OutColor.rgb *= invAlpha;
}

@class {
    GrColor4f constantOutputForConstantInput(GrColor4f input) const override {
        return input.unpremul();
    }
}