Home | History | Annotate | Download | only in effects
      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