Update rive-cpp to 2.0 version
[platform/core/uifw/rive-tizen.git] / submodule / skia / src / core / SkModeColorFilter.h
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     static sk_sp<SkColorFilter> Make(SkColor color, SkBlendMode mode) {
16         return sk_sp<SkColorFilter>(new SkModeColorFilter(color, mode));
17     }
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