Coverage Report

Created: 2021-08-22 09:07

/src/skia/src/core/SkModeColorFilter.h
Line
Count
Source
1
/*
2
 * Copyright 2016 Google Inc.
3
 *
4
 * Use of this source code is governed by a BSD-style license that can be
5
 * found in the LICENSE file.
6
 */
7
8
#ifndef SkModeColorFilter_DEFINED
9
#define SkModeColorFilter_DEFINED
10
11
#include "src/core/SkColorFilterBase.h"
12
13
class SkModeColorFilter : public SkColorFilterBase {
14
public:
15
22.6k
    static sk_sp<SkColorFilter> Make(SkColor color, SkBlendMode mode) {
16
22.6k
        return sk_sp<SkColorFilter>(new SkModeColorFilter(color, mode));
17
22.6k
    }
18
19
    bool onIsAlphaUnchanged() const override;
20
21
#if SK_SUPPORT_GPU
22
    GrFPResult asFragmentProcessor(std::unique_ptr<GrFragmentProcessor> inputFP,
23
                                   GrRecordingContext*, const GrColorInfo&) const override;
24
#endif
25
26
    SK_FLATTENABLE_HOOKS(SkModeColorFilter)
27
28
protected:
29
    SkModeColorFilter(SkColor color, SkBlendMode mode);
30
31
    void flatten(SkWriteBuffer&) const override;
32
    bool onAsAColorMode(SkColor*, SkBlendMode*) const override;
33
34
    bool onAppendStages(const SkStageRec& rec, bool shaderIsOpaque) const override;
35
    skvm::Color onProgram(skvm::Builder*, skvm::Color,
36
                          const SkColorInfo&, skvm::Uniforms*, SkArenaAlloc*) const override;
37
38
private:
39
    SkColor     fColor;
40
    SkBlendMode fMode;
41
42
    friend class SkColorFilter;
43
44
    using INHERITED = SkColorFilterBase;
45
};
46
47
#endif