blob: 0c1233c8634a75b1d434f848c690e0d79f7c891f [file] [log] [blame]
Michael Ludwig8f685082018-09-12 15:23:01 -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 GrTwoPointConicalGradientLayout.fp; do not modify.
10 **************************************************************************************************/
11#ifndef GrTwoPointConicalGradientLayout_DEFINED
12#define GrTwoPointConicalGradientLayout_DEFINED
13#include "SkTypes.h"
14
15#include "SkTwoPointConicalGradient.h"
16#include "GrFragmentProcessor.h"
17#include "GrCoordTransform.h"
18class GrTwoPointConicalGradientLayout : public GrFragmentProcessor {
19public:
20 enum class Type { kFocal = 2, kRadial = 0, kStrip = 1 };
21 const SkMatrix44& gradientMatrix() const { return fGradientMatrix; }
22 const Type& type() const { return fType; }
23 bool isRadiusIncreasing() const { return fIsRadiusIncreasing; }
24 bool isFocalOnCircle() const { return fIsFocalOnCircle; }
25 bool isWellBehaved() const { return fIsWellBehaved; }
26 bool isSwapped() const { return fIsSwapped; }
27 bool isNativelyFocal() const { return fIsNativelyFocal; }
28 const SkPoint& focalParams() const { return fFocalParams; }
29
30 static std::unique_ptr<GrFragmentProcessor> Make(const SkTwoPointConicalGradient& gradient,
31 const GrFPArgs& args);
32 GrTwoPointConicalGradientLayout(const GrTwoPointConicalGradientLayout& src);
33 std::unique_ptr<GrFragmentProcessor> clone() const override;
34 const char* name() const override { return "TwoPointConicalGradientLayout"; }
35
36private:
Michael Ludwigb96cba32018-09-14 13:59:24 -040037 GrTwoPointConicalGradientLayout(SkMatrix44 gradientMatrix, Type type, bool isRadiusIncreasing,
38 bool isFocalOnCircle, bool isWellBehaved, bool isSwapped,
39 bool isNativelyFocal, SkPoint focalParams)
40 : INHERITED(kGrTwoPointConicalGradientLayout_ClassID,
41 (OptimizationFlags)kNone_OptimizationFlags)
Michael Ludwig8f685082018-09-12 15:23:01 -040042 , fGradientMatrix(gradientMatrix)
43 , fType(type)
44 , fIsRadiusIncreasing(isRadiusIncreasing)
45 , fIsFocalOnCircle(isFocalOnCircle)
46 , fIsWellBehaved(isWellBehaved)
47 , fIsSwapped(isSwapped)
48 , fIsNativelyFocal(isNativelyFocal)
49 , fFocalParams(focalParams)
50 , fCoordTransform0(gradientMatrix) {
51 this->addCoordTransform(&fCoordTransform0);
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 SkMatrix44 fGradientMatrix;
58 Type fType;
59 bool fIsRadiusIncreasing;
60 bool fIsFocalOnCircle;
61 bool fIsWellBehaved;
62 bool fIsSwapped;
63 bool fIsNativelyFocal;
64 SkPoint fFocalParams;
65 GrCoordTransform fCoordTransform0;
66 typedef GrFragmentProcessor INHERITED;
67};
68#endif