1 /* 2 * Copyright 2017 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 GrSimpleTextureEffect.fp; do not modify. 10 */ 11 #ifndef GrSimpleTextureEffect_DEFINED 12 #define GrSimpleTextureEffect_DEFINED 13 #include "SkTypes.h" 14 #if SK_SUPPORT_GPU 15 #include "GrFragmentProcessor.h" 16 #include "GrCoordTransform.h" 17 #include "GrColorSpaceXform.h" 18 #include "effects/GrProxyMove.h" 19 class GrSimpleTextureEffect : public GrFragmentProcessor { 20 public: 21 sk_sp<GrColorSpaceXform> colorXform() const { return fColorXform; } 22 SkMatrix44 matrix() const { return fMatrix; } 23 24 static sk_sp<GrFragmentProcessor> Make(sk_sp<GrTextureProxy> proxy, 25 sk_sp<GrColorSpaceXform> 26 colorSpaceXform, 27 const SkMatrix& matrix) { 28 return sk_sp<GrFragmentProcessor>(new GrSimpleTextureEffect( 29 std::move(proxy), std::move(colorSpaceXform), matrix, 30 GrSamplerParams(SkShader::kClamp_TileMode, GrSamplerParams::kNone_FilterMode))); 31 } 32 33 static sk_sp<GrFragmentProcessor> Make(sk_sp<GrTextureProxy> proxy, 34 sk_sp<GrColorSpaceXform> 35 colorSpaceXform, 36 const SkMatrix& matrix, 37 GrSamplerParams::FilterMode filterMode) { 38 return sk_sp<GrFragmentProcessor>( 39 new GrSimpleTextureEffect(std::move(proxy), std::move(colorSpaceXform), matrix, 40 GrSamplerParams(SkShader::kClamp_TileMode, filterMode))); 41 } 42 43 static sk_sp<GrFragmentProcessor> Make(sk_sp<GrTextureProxy> proxy, 44 sk_sp<GrColorSpaceXform> 45 colorSpaceXform, 46 const SkMatrix& matrix, 47 const GrSamplerParams& p) { 48 return sk_sp<GrFragmentProcessor>( 49 new GrSimpleTextureEffect(std::move(proxy), std::move(colorSpaceXform), matrix, p)); 50 } 51 const char* name() const override { return "SimpleTextureEffect"; } 52 53 private: 54 GrSimpleTextureEffect(sk_sp<GrTextureProxy> image, sk_sp<GrColorSpaceXform> colorXform, 55 SkMatrix44 matrix, GrSamplerParams samplerParams) 56 : INHERITED((OptimizationFlags)kCompatibleWithCoverageAsAlpha_OptimizationFlag | 57 (GrPixelConfigIsOpaque(image->config()) 58 ? kPreservesOpaqueInput_OptimizationFlag 59 : kNone_OptimizationFlags)) 60 , fImage(std::move(image), samplerParams) 61 , fColorXform(colorXform) 62 , fMatrix(matrix) 63 , fImageCoordTransform(matrix, fImage.proxy()) { 64 this->addTextureSampler(&fImage); 65 this->addCoordTransform(&fImageCoordTransform); 66 this->initClassID<GrSimpleTextureEffect>(); 67 } 68 GrGLSLFragmentProcessor* onCreateGLSLInstance() const override; 69 void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override; 70 bool onIsEqual(const GrFragmentProcessor&) const override; 71 GR_DECLARE_FRAGMENT_PROCESSOR_TEST 72 TextureSampler fImage; 73 sk_sp<GrColorSpaceXform> fColorXform; 74 SkMatrix44 fMatrix; 75 GrCoordTransform fImageCoordTransform; 76 typedef GrFragmentProcessor INHERITED; 77 }; 78 #endif 79 #endif 80