blob: 4bccdea4b6ea945f8de08aac33731e894cb2c361 [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:
37 GrTwoPointConicalGradientLayout(SkMatrix44 gradientMatrix,
38 Type type,
39 bool isRadiusIncreasing,
40 bool isFocalOnCircle,
41 bool isWellBehaved,
42 bool isSwapped,
43 bool isNativelyFocal,
44 SkPoint focalParams)
45 : INHERITED(kGrTwoPointConicalGradientLayout_ClassID, kNone_OptimizationFlags)
46 , fGradientMatrix(gradientMatrix)
47 , fType(type)
48 , fIsRadiusIncreasing(isRadiusIncreasing)
49 , fIsFocalOnCircle(isFocalOnCircle)
50 , fIsWellBehaved(isWellBehaved)
51 , fIsSwapped(isSwapped)
52 , fIsNativelyFocal(isNativelyFocal)
53 , fFocalParams(focalParams)
54 , fCoordTransform0(gradientMatrix) {
55 this->addCoordTransform(&fCoordTransform0);
56 }
57 GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
58 void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override;
59 bool onIsEqual(const GrFragmentProcessor&) const override;
60 GR_DECLARE_FRAGMENT_PROCESSOR_TEST
61 SkMatrix44 fGradientMatrix;
62 Type fType;
63 bool fIsRadiusIncreasing;
64 bool fIsFocalOnCircle;
65 bool fIsWellBehaved;
66 bool fIsSwapped;
67 bool fIsNativelyFocal;
68 SkPoint fFocalParams;
69 GrCoordTransform fCoordTransform0;
70 typedef GrFragmentProcessor INHERITED;
71};
72#endif