blob: ffaca8e42375e11df8020267635feb3344cbb5ee [file] [log] [blame]
Michael Ludwig4f94ef62018-09-12 15:22:16 -04001/*
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"
16class GrTiledGradientEffect : public GrFragmentProcessor {
17public:
18 bool mirror() const { return fMirror; }
Michael Ludwigb96cba32018-09-14 13:59:24 -040019 bool makePremul() const { return fMakePremul; }
20 bool colorsAreOpaque() const { return fColorsAreOpaque; }
Michael Ludwig4f94ef62018-09-12 15:22:16 -040021 static std::unique_ptr<GrFragmentProcessor> Make(
22 std::unique_ptr<GrFragmentProcessor> colorizer,
Michael Ludwigb96cba32018-09-14 13:59:24 -040023 std::unique_ptr<GrFragmentProcessor> gradLayout, bool mirror, bool makePremul,
24 bool colorsAreOpaque) {
25 return std::unique_ptr<GrFragmentProcessor>(new GrTiledGradientEffect(
26 std::move(colorizer), std::move(gradLayout), mirror, makePremul, colorsAreOpaque));
Michael Ludwig4f94ef62018-09-12 15:22:16 -040027 }
28 GrTiledGradientEffect(const GrTiledGradientEffect& src);
29 std::unique_ptr<GrFragmentProcessor> clone() const override;
30 const char* name() const override { return "TiledGradientEffect"; }
31
32private:
33 GrTiledGradientEffect(std::unique_ptr<GrFragmentProcessor> colorizer,
Michael Ludwigb96cba32018-09-14 13:59:24 -040034 std::unique_ptr<GrFragmentProcessor> gradLayout, bool mirror,
35 bool makePremul, bool colorsAreOpaque)
36 : INHERITED(kGrTiledGradientEffect_ClassID,
37 (OptimizationFlags)kCompatibleWithCoverageAsAlpha_OptimizationFlag |
38 (colorsAreOpaque && gradLayout->preservesOpaqueInput()
39 ? kPreservesOpaqueInput_OptimizationFlag
40 : kNone_OptimizationFlags))
41 , fMirror(mirror)
42 , fMakePremul(makePremul)
43 , fColorsAreOpaque(colorsAreOpaque) {
Michael Ludwig4f94ef62018-09-12 15:22:16 -040044 this->registerChildProcessor(std::move(colorizer));
45 this->registerChildProcessor(std::move(gradLayout));
46 }
47 GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
48 void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override;
49 bool onIsEqual(const GrFragmentProcessor&) const override;
50 GR_DECLARE_FRAGMENT_PROCESSOR_TEST
51 bool fMirror;
Michael Ludwigb96cba32018-09-14 13:59:24 -040052 bool fMakePremul;
53 bool fColorsAreOpaque;
Michael Ludwig4f94ef62018-09-12 15:22:16 -040054 typedef GrFragmentProcessor INHERITED;
55};
56#endif