Home | History | Annotate | Download | only in gradients
      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 GrTextureGradientColorizer.fp; do not modify.
     10  **************************************************************************************************/
     11 #include "GrTextureGradientColorizer.h"
     12 #include "glsl/GrGLSLFragmentProcessor.h"
     13 #include "glsl/GrGLSLFragmentShaderBuilder.h"
     14 #include "glsl/GrGLSLProgramBuilder.h"
     15 #include "GrTexture.h"
     16 #include "SkSLCPP.h"
     17 #include "SkSLUtil.h"
     18 class GrGLSLTextureGradientColorizer : public GrGLSLFragmentProcessor {
     19 public:
     20     GrGLSLTextureGradientColorizer() {}
     21     void emitCode(EmitArgs& args) override {
     22         GrGLSLFPFragmentBuilder* fragBuilder = args.fFragBuilder;
     23         const GrTextureGradientColorizer& _outer = args.fFp.cast<GrTextureGradientColorizer>();
     24         (void)_outer;
     25         fragBuilder->codeAppendf(
     26                 "half2 coord = half2(%s.x, 0.5);\n%s = texture(%s, float2(coord)).%s;\n",
     27                 args.fInputColor, args.fOutputColor,
     28                 fragBuilder->getProgramBuilder()->samplerVariable(args.fTexSamplers[0]).c_str(),
     29                 fragBuilder->getProgramBuilder()->samplerSwizzle(args.fTexSamplers[0]).c_str());
     30     }
     31 
     32 private:
     33     void onSetData(const GrGLSLProgramDataManager& pdman,
     34                    const GrFragmentProcessor& _proc) override {}
     35 };
     36 GrGLSLFragmentProcessor* GrTextureGradientColorizer::onCreateGLSLInstance() const {
     37     return new GrGLSLTextureGradientColorizer();
     38 }
     39 void GrTextureGradientColorizer::onGetGLSLProcessorKey(const GrShaderCaps& caps,
     40                                                        GrProcessorKeyBuilder* b) const {}
     41 bool GrTextureGradientColorizer::onIsEqual(const GrFragmentProcessor& other) const {
     42     const GrTextureGradientColorizer& that = other.cast<GrTextureGradientColorizer>();
     43     (void)that;
     44     if (fGradient != that.fGradient) return false;
     45     return true;
     46 }
     47 GrTextureGradientColorizer::GrTextureGradientColorizer(const GrTextureGradientColorizer& src)
     48         : INHERITED(kGrTextureGradientColorizer_ClassID, src.optimizationFlags())
     49         , fGradient(src.fGradient) {
     50     this->setTextureSamplerCnt(1);
     51 }
     52 std::unique_ptr<GrFragmentProcessor> GrTextureGradientColorizer::clone() const {
     53     return std::unique_ptr<GrFragmentProcessor>(new GrTextureGradientColorizer(*this));
     54 }
     55 const GrFragmentProcessor::TextureSampler& GrTextureGradientColorizer::onTextureSampler(
     56         int index) const {
     57     return IthTextureSampler(index, fGradient);
     58 }
     59