blob: 26e6d724b27609b9675e26cd5815e6a5547414ae [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 GrClampedGradientEffect.fp; do not modify.
10 **************************************************************************************************/
11#ifndef GrClampedGradientEffect_DEFINED
12#define GrClampedGradientEffect_DEFINED
13#include "SkTypes.h"
14#include "GrFragmentProcessor.h"
15#include "GrCoordTransform.h"
16class GrClampedGradientEffect : public GrFragmentProcessor {
17public:
Brian Osman021ed512018-10-16 15:19:44 -040018 const SkPMColor4f& leftBorderColor() const { return fLeftBorderColor; }
19 const SkPMColor4f& rightBorderColor() const { return fRightBorderColor; }
Michael Ludwigb96cba32018-09-14 13:59:24 -040020 bool makePremul() const { return fMakePremul; }
21 bool colorsAreOpaque() const { return fColorsAreOpaque; }
Michael Ludwig4f94ef62018-09-12 15:22:16 -040022 static std::unique_ptr<GrFragmentProcessor> Make(
23 std::unique_ptr<GrFragmentProcessor> colorizer,
Brian Osman021ed512018-10-16 15:19:44 -040024 std::unique_ptr<GrFragmentProcessor> gradLayout, SkPMColor4f leftBorderColor,
25 SkPMColor4f rightBorderColor, bool makePremul, bool colorsAreOpaque) {
Michael Ludwig4f94ef62018-09-12 15:22:16 -040026 return std::unique_ptr<GrFragmentProcessor>(new GrClampedGradientEffect(
Michael Ludwigb96cba32018-09-14 13:59:24 -040027 std::move(colorizer), std::move(gradLayout), leftBorderColor, rightBorderColor,
28 makePremul, colorsAreOpaque));
Michael Ludwig4f94ef62018-09-12 15:22:16 -040029 }
30 GrClampedGradientEffect(const GrClampedGradientEffect& src);
31 std::unique_ptr<GrFragmentProcessor> clone() const override;
32 const char* name() const override { return "ClampedGradientEffect"; }
33
34private:
35 GrClampedGradientEffect(std::unique_ptr<GrFragmentProcessor> colorizer,
36 std::unique_ptr<GrFragmentProcessor> gradLayout,
Brian Osman021ed512018-10-16 15:19:44 -040037 SkPMColor4f leftBorderColor, SkPMColor4f rightBorderColor,
38 bool makePremul, bool colorsAreOpaque)
Michael Ludwigb96cba32018-09-14 13:59:24 -040039 : INHERITED(kGrClampedGradientEffect_ClassID,
40 (OptimizationFlags)kCompatibleWithCoverageAsAlpha_OptimizationFlag |
41 (colorsAreOpaque && gradLayout->preservesOpaqueInput()
42 ? kPreservesOpaqueInput_OptimizationFlag
43 : kNone_OptimizationFlags))
Michael Ludwig4f94ef62018-09-12 15:22:16 -040044 , fLeftBorderColor(leftBorderColor)
Michael Ludwigb96cba32018-09-14 13:59:24 -040045 , fRightBorderColor(rightBorderColor)
46 , fMakePremul(makePremul)
47 , fColorsAreOpaque(colorsAreOpaque) {
Michael Ludwig4f94ef62018-09-12 15:22:16 -040048 this->registerChildProcessor(std::move(colorizer));
49 this->registerChildProcessor(std::move(gradLayout));
50 }
51 GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
52 void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override;
53 bool onIsEqual(const GrFragmentProcessor&) const override;
54 GR_DECLARE_FRAGMENT_PROCESSOR_TEST
Brian Osman021ed512018-10-16 15:19:44 -040055 SkPMColor4f fLeftBorderColor;
56 SkPMColor4f fRightBorderColor;
Michael Ludwigb96cba32018-09-14 13:59:24 -040057 bool fMakePremul;
58 bool fColorsAreOpaque;
Michael Ludwig4f94ef62018-09-12 15:22:16 -040059 typedef GrFragmentProcessor INHERITED;
60};
61#endif