1 /* 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 14 #include "include/core/SkM44.h" 15 #include "include/core/SkTypes.h" 16 17 #include "src/gpu/effects/GrMatrixEffect.h" 18 #include "src/gpu/gradients/GrGradientShader.h" 19 #include "src/shaders/gradients/SkTwoPointConicalGradient.h" 20 21 #include "src/gpu/GrFragmentProcessor.h" 22 23 class GrTwoPointConicalGradientLayout : public GrFragmentProcessor { 24 public: 25 enum class Type { kRadial = 0, kStrip = 1, kFocal = 2 }; 26 27 static std::unique_ptr<GrFragmentProcessor> Make(const SkTwoPointConicalGradient& gradient, 28 const GrFPArgs& args); 29 GrTwoPointConicalGradientLayout(const GrTwoPointConicalGradientLayout& src); 30 std::unique_ptr<GrFragmentProcessor> clone() const override; name()31 const char* name() const override { return "TwoPointConicalGradientLayout"; } 32 Type type; 33 bool isRadiusIncreasing; 34 bool isFocalOnCircle; 35 bool isWellBehaved; 36 bool isSwapped; 37 bool isNativelyFocal; 38 SkPoint focalParams; 39 40 private: GrTwoPointConicalGradientLayout(Type type,bool isRadiusIncreasing,bool isFocalOnCircle,bool isWellBehaved,bool isSwapped,bool isNativelyFocal,SkPoint focalParams)41 GrTwoPointConicalGradientLayout(Type type, 42 bool isRadiusIncreasing, 43 bool isFocalOnCircle, 44 bool isWellBehaved, 45 bool isSwapped, 46 bool isNativelyFocal, 47 SkPoint focalParams) 48 : INHERITED(kGrTwoPointConicalGradientLayout_ClassID, 49 (OptimizationFlags)kNone_OptimizationFlags) 50 , type(type) 51 , isRadiusIncreasing(isRadiusIncreasing) 52 , isFocalOnCircle(isFocalOnCircle) 53 , isWellBehaved(isWellBehaved) 54 , isSwapped(isSwapped) 55 , isNativelyFocal(isNativelyFocal) 56 , focalParams(focalParams) { 57 this->setUsesSampleCoordsDirectly(); 58 } 59 std::unique_ptr<GrGLSLFragmentProcessor> onMakeProgramImpl() const override; 60 void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override; 61 bool onIsEqual(const GrFragmentProcessor&) const override; 62 #if GR_TEST_UTILS 63 SkString onDumpInfo() const override; 64 #endif 65 GR_DECLARE_FRAGMENT_PROCESSOR_TEST 66 using INHERITED = GrFragmentProcessor; 67 }; 68 #endif 69