• 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 GrTiledGradientEffect.fp; do not modify.
10  **************************************************************************************************/
11 #ifndef GrTiledGradientEffect_DEFINED
12 #define GrTiledGradientEffect_DEFINED
13 #include "SkTypes.h"
14 #include "GrFragmentProcessor.h"
15 #include "GrCoordTransform.h"
16 class GrTiledGradientEffect : public GrFragmentProcessor {
17 public:
colorizer_index()18     int colorizer_index() const { return fColorizer_index; }
gradLayout_index()19     int gradLayout_index() const { return fGradLayout_index; }
mirror()20     bool mirror() const { return fMirror; }
makePremul()21     bool makePremul() const { return fMakePremul; }
colorsAreOpaque()22     bool colorsAreOpaque() const { return fColorsAreOpaque; }
Make(std::unique_ptr<GrFragmentProcessor> colorizer,std::unique_ptr<GrFragmentProcessor> gradLayout,bool mirror,bool makePremul,bool colorsAreOpaque)23     static std::unique_ptr<GrFragmentProcessor> Make(
24             std::unique_ptr<GrFragmentProcessor> colorizer,
25             std::unique_ptr<GrFragmentProcessor> gradLayout, bool mirror, bool makePremul,
26             bool colorsAreOpaque) {
27         return std::unique_ptr<GrFragmentProcessor>(new GrTiledGradientEffect(
28                 std::move(colorizer), std::move(gradLayout), mirror, makePremul, colorsAreOpaque));
29     }
30     GrTiledGradientEffect(const GrTiledGradientEffect& src);
31     std::unique_ptr<GrFragmentProcessor> clone() const override;
name()32     const char* name() const override { return "TiledGradientEffect"; }
33 
34 private:
GrTiledGradientEffect(std::unique_ptr<GrFragmentProcessor> colorizer,std::unique_ptr<GrFragmentProcessor> gradLayout,bool mirror,bool makePremul,bool colorsAreOpaque)35     GrTiledGradientEffect(std::unique_ptr<GrFragmentProcessor> colorizer,
36                           std::unique_ptr<GrFragmentProcessor> gradLayout, bool mirror,
37                           bool makePremul, bool colorsAreOpaque)
38             : INHERITED(kGrTiledGradientEffect_ClassID,
39                         (OptimizationFlags)kCompatibleWithCoverageAsAlpha_OptimizationFlag |
40                                 (colorsAreOpaque && gradLayout->preservesOpaqueInput()
41                                          ? kPreservesOpaqueInput_OptimizationFlag
42                                          : kNone_OptimizationFlags))
43             , fMirror(mirror)
44             , fMakePremul(makePremul)
45             , fColorsAreOpaque(colorsAreOpaque) {
46         SkASSERT(colorizer);
47         fColorizer_index = this->numChildProcessors();
48         this->registerChildProcessor(std::move(colorizer));
49         SkASSERT(gradLayout);
50         fGradLayout_index = this->numChildProcessors();
51         this->registerChildProcessor(std::move(gradLayout));
52     }
53     GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
54     void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override;
55     bool onIsEqual(const GrFragmentProcessor&) const override;
56     GR_DECLARE_FRAGMENT_PROCESSOR_TEST
57     int fColorizer_index = -1;
58     int fGradLayout_index = -1;
59     bool fMirror;
60     bool fMakePremul;
61     bool fColorsAreOpaque;
62     typedef GrFragmentProcessor INHERITED;
63 };
64 #endif
65