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 GrCircleBlurFragmentProcessor.fp; do not modify. 10 **************************************************************************************************/ 11#ifndef GrCircleBlurFragmentProcessor_DEFINED 12#define GrCircleBlurFragmentProcessor_DEFINED 13#include "SkTypes.h" 14#if SK_SUPPORT_GPU 15#include "GrFragmentProcessor.h" 16#include "GrCoordTransform.h" 17class GrCircleBlurFragmentProcessor : public GrFragmentProcessor { 18public: 19 SkRect circleRect() const { return fCircleRect; } 20 float textureRadius() const { return fTextureRadius; } 21 float solidRadius() const { return fSolidRadius; } 22 23 static std::unique_ptr<GrFragmentProcessor> Make(GrProxyProvider*, const SkRect& circle, 24 float sigma); 25 GrCircleBlurFragmentProcessor(const GrCircleBlurFragmentProcessor& src); 26 std::unique_ptr<GrFragmentProcessor> clone() const override; 27 const char* name() const override { return "CircleBlurFragmentProcessor"; } 28 29private: 30 GrCircleBlurFragmentProcessor(SkRect circleRect, float textureRadius, float solidRadius, 31 sk_sp<GrTextureProxy> blurProfileSampler) 32 : INHERITED(kGrCircleBlurFragmentProcessor_ClassID, 33 (OptimizationFlags)kCompatibleWithCoverageAsAlpha_OptimizationFlag) 34 , fCircleRect(circleRect) 35 , fTextureRadius(textureRadius) 36 , fSolidRadius(solidRadius) 37 , fBlurProfileSampler(std::move(blurProfileSampler)) { 38 this->addTextureSampler(&fBlurProfileSampler); 39 } 40 GrGLSLFragmentProcessor* onCreateGLSLInstance() const override; 41 void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override; 42 bool onIsEqual(const GrFragmentProcessor&) const override; 43 GR_DECLARE_FRAGMENT_PROCESSOR_TEST 44 SkRect fCircleRect; 45 float fTextureRadius; 46 float fSolidRadius; 47 TextureSampler fBlurProfileSampler; 48 typedef GrFragmentProcessor INHERITED; 49}; 50#endif 51#endif 52