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 GrLumaColorFilterEffect.fp; do not modify. 10 **************************************************************************************************/ 11 #include "GrLumaColorFilterEffect.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 GrGLSLLumaColorFilterEffect : public GrGLSLFragmentProcessor { 19 public: 20 GrGLSLLumaColorFilterEffect() {} 21 void emitCode(EmitArgs& args) override { 22 GrGLSLFPFragmentBuilder* fragBuilder = args.fFragBuilder; 23 const GrLumaColorFilterEffect& _outer = args.fFp.cast<GrLumaColorFilterEffect>(); 24 (void)_outer; 25 fragBuilder->codeAppendf( 26 "\nhalf luma = dot(half3(0.21260000000000001, 0.71519999999999995, 0.0722), " 27 "%s.xyz);\n%s = half4(0.0, 0.0, 0.0, luma);\n", 28 args.fInputColor, args.fOutputColor); 29 } 30 31 private: 32 void onSetData(const GrGLSLProgramDataManager& pdman, 33 const GrFragmentProcessor& _proc) override {} 34 }; 35 GrGLSLFragmentProcessor* GrLumaColorFilterEffect::onCreateGLSLInstance() const { 36 return new GrGLSLLumaColorFilterEffect(); 37 } 38 void GrLumaColorFilterEffect::onGetGLSLProcessorKey(const GrShaderCaps& caps, 39 GrProcessorKeyBuilder* b) const {} 40 bool GrLumaColorFilterEffect::onIsEqual(const GrFragmentProcessor& other) const { 41 const GrLumaColorFilterEffect& that = other.cast<GrLumaColorFilterEffect>(); 42 (void)that; 43 return true; 44 } 45 GrLumaColorFilterEffect::GrLumaColorFilterEffect(const GrLumaColorFilterEffect& src) 46 : INHERITED(kGrLumaColorFilterEffect_ClassID, src.optimizationFlags()) {} 47 std::unique_ptr<GrFragmentProcessor> GrLumaColorFilterEffect::clone() const { 48 return std::unique_ptr<GrFragmentProcessor>(new GrLumaColorFilterEffect(*this)); 49 } 50