blob: ab833d4d134ba8409b3c86940b14b09745ada9c9 [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"
Michael Ludwig7f8c5242018-09-14 15:07:55 -040016#include "GrGradientShader.h"
Michael Ludwig8f685082018-09-12 15:23:01 -040017#include "GrFragmentProcessor.h"
18#include "GrCoordTransform.h"
19class GrTwoPointConicalGradientLayout : public GrFragmentProcessor {
20public:
21 enum class Type { kFocal = 2, kRadial = 0, kStrip = 1 };
22 const SkMatrix44& gradientMatrix() const { return fGradientMatrix; }
23 const Type& type() const { return fType; }
24 bool isRadiusIncreasing() const { return fIsRadiusIncreasing; }
25 bool isFocalOnCircle() const { return fIsFocalOnCircle; }
26 bool isWellBehaved() const { return fIsWellBehaved; }
27 bool isSwapped() const { return fIsSwapped; }
28 bool isNativelyFocal() const { return fIsNativelyFocal; }
29 const SkPoint& focalParams() const { return fFocalParams; }
30
31 static std::unique_ptr<GrFragmentProcessor> Make(const SkTwoPointConicalGradient& gradient,
32 const GrFPArgs& args);
33 GrTwoPointConicalGradientLayout(const GrTwoPointConicalGradientLayout& src);
34 std::unique_ptr<GrFragmentProcessor> clone() const override;
35 const char* name() const override { return "TwoPointConicalGradientLayout"; }
36
37private:
Michael Ludwigb96cba32018-09-14 13:59:24 -040038 GrTwoPointConicalGradientLayout(SkMatrix44 gradientMatrix, Type type, bool isRadiusIncreasing,
39 bool isFocalOnCircle, bool isWellBehaved, bool isSwapped,
40 bool isNativelyFocal, SkPoint focalParams)
41 : INHERITED(kGrTwoPointConicalGradientLayout_ClassID,
42 (OptimizationFlags)kNone_OptimizationFlags)
Michael Ludwig8f685082018-09-12 15:23:01 -040043 , fGradientMatrix(gradientMatrix)
44 , fType(type)
45 , fIsRadiusIncreasing(isRadiusIncreasing)
46 , fIsFocalOnCircle(isFocalOnCircle)
47 , fIsWellBehaved(isWellBehaved)
48 , fIsSwapped(isSwapped)
49 , fIsNativelyFocal(isNativelyFocal)
50 , fFocalParams(focalParams)
51 , fCoordTransform0(gradientMatrix) {
52 this->addCoordTransform(&fCoordTransform0);
53 }
54 GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
55 void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override;
56 bool onIsEqual(const GrFragmentProcessor&) const override;
57 GR_DECLARE_FRAGMENT_PROCESSOR_TEST
58 SkMatrix44 fGradientMatrix;
59 Type fType;
60 bool fIsRadiusIncreasing;
61 bool fIsFocalOnCircle;
62 bool fIsWellBehaved;
63 bool fIsSwapped;
64 bool fIsNativelyFocal;
65 SkPoint fFocalParams;
66 GrCoordTransform fCoordTransform0;
67 typedef GrFragmentProcessor INHERITED;
68};
69#endif