• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2018 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 /**************************************************************************************************
9  *** This file was autogenerated from GrClampedGradientEffect.fp; do not modify.
10  **************************************************************************************************/
11 #ifndef GrClampedGradientEffect_DEFINED
12 #define GrClampedGradientEffect_DEFINED
13 #include "include/core/SkTypes.h"
14 #include "include/core/SkM44.h"
15 
16 #include "src/gpu/GrCoordTransform.h"
17 #include "src/gpu/GrFragmentProcessor.h"
18 class GrClampedGradientEffect : public GrFragmentProcessor {
19 public:
Make(std::unique_ptr<GrFragmentProcessor> colorizer,std::unique_ptr<GrFragmentProcessor> gradLayout,SkPMColor4f leftBorderColor,SkPMColor4f rightBorderColor,bool makePremul,bool colorsAreOpaque)20     static std::unique_ptr<GrFragmentProcessor> Make(
21             std::unique_ptr<GrFragmentProcessor> colorizer,
22             std::unique_ptr<GrFragmentProcessor> gradLayout, SkPMColor4f leftBorderColor,
23             SkPMColor4f rightBorderColor, bool makePremul, bool colorsAreOpaque) {
24         return std::unique_ptr<GrFragmentProcessor>(new GrClampedGradientEffect(
25                 std::move(colorizer), std::move(gradLayout), leftBorderColor, rightBorderColor,
26                 makePremul, colorsAreOpaque));
27     }
28     GrClampedGradientEffect(const GrClampedGradientEffect& src);
29     std::unique_ptr<GrFragmentProcessor> clone() const override;
name()30     const char* name() const override { return "ClampedGradientEffect"; }
31     int colorizer_index = -1;
32     int gradLayout_index = -1;
33     SkPMColor4f leftBorderColor;
34     SkPMColor4f rightBorderColor;
35     bool makePremul;
36     bool colorsAreOpaque;
37 
38 private:
GrClampedGradientEffect(std::unique_ptr<GrFragmentProcessor> colorizer,std::unique_ptr<GrFragmentProcessor> gradLayout,SkPMColor4f leftBorderColor,SkPMColor4f rightBorderColor,bool makePremul,bool colorsAreOpaque)39     GrClampedGradientEffect(std::unique_ptr<GrFragmentProcessor> colorizer,
40                             std::unique_ptr<GrFragmentProcessor> gradLayout,
41                             SkPMColor4f leftBorderColor, SkPMColor4f rightBorderColor,
42                             bool makePremul, bool colorsAreOpaque)
43             : INHERITED(kGrClampedGradientEffect_ClassID,
44                         (OptimizationFlags)kCompatibleWithCoverageAsAlpha_OptimizationFlag |
45                                 (colorsAreOpaque && gradLayout->preservesOpaqueInput()
46                                          ? kPreservesOpaqueInput_OptimizationFlag
47                                          : kNone_OptimizationFlags))
48             , leftBorderColor(leftBorderColor)
49             , rightBorderColor(rightBorderColor)
50             , makePremul(makePremul)
51             , colorsAreOpaque(colorsAreOpaque) {
52         SkASSERT(colorizer);
53         colorizer_index = this->numChildProcessors();
54         this->registerChildProcessor(std::move(colorizer));
55         SkASSERT(gradLayout);
56         gradLayout_index = this->numChildProcessors();
57         this->registerChildProcessor(std::move(gradLayout));
58     }
59     GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
60     void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override;
61     bool onIsEqual(const GrFragmentProcessor&) const override;
62     GR_DECLARE_FRAGMENT_PROCESSOR_TEST
63     typedef GrFragmentProcessor INHERITED;
64 };
65 #endif
66