/*#pragma settings NoInline*/ /************************************************************************************************** *** This file was autogenerated from GrNestedCall.fp; do not modify. **************************************************************************************************/ #include "GrNestedCall.h" #include "src/core/SkUtils.h" #include "src/gpu/GrTexture.h" #include "src/gpu/glsl/GrGLSLFragmentProcessor.h" #include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" #include "src/gpu/glsl/GrGLSLProgramBuilder.h" #include "src/sksl/SkSLCPP.h" #include "src/sksl/SkSLUtil.h" class GrGLSLNestedCall : public GrGLSLFragmentProcessor { public: GrGLSLNestedCall() {} void emitCode(EmitArgs& args) override { GrGLSLFPFragmentBuilder* fragBuilder = args.fFragBuilder; const GrNestedCall& _outer = args.fFp.cast(); (void) _outer; SkString func1_name = fragBuilder->getMangledFunctionName("func1"); const GrShaderVar func1_args[] = { }; SkString func2_name = fragBuilder->getMangledFunctionName("func2"); const GrShaderVar func2_args[] = { }; SkString func3_name = fragBuilder->getMangledFunctionName("func3"); const GrShaderVar func3_args[] = { }; fragBuilder->emitFunctionPrototype(kHalf4_GrSLType, func1_name.c_str(), {func1_args, 0}); fragBuilder->emitFunctionPrototype(kHalf4_GrSLType, func2_name.c_str(), {func2_args, 0}); fragBuilder->emitFunctionPrototype(kHalf4_GrSLType, func3_name.c_str(), {func3_args, 0}); const String func1_impl = String::printf(R"SkSL(return %s(); )SkSL" , func2_name.c_str()); fragBuilder->emitFunction(kHalf4_GrSLType, func1_name.c_str(), {func1_args, 0}, func1_impl.c_str()); const String func2_impl = String::printf(R"SkSL(return %s(); )SkSL" , func3_name.c_str()); fragBuilder->emitFunction(kHalf4_GrSLType, func2_name.c_str(), {func2_args, 0}, func2_impl.c_str()); fragBuilder->codeAppendf( R"SkSL(return %s(); )SkSL" , func1_name.c_str()); } private: void onSetData(const GrGLSLProgramDataManager& pdman, const GrFragmentProcessor& _proc) override { } }; GrGLSLFragmentProcessor* GrNestedCall::onCreateGLSLInstance() const { return new GrGLSLNestedCall(); } void GrNestedCall::onGetGLSLProcessorKey(const GrShaderCaps& caps, GrProcessorKeyBuilder* b) const { } bool GrNestedCall::onIsEqual(const GrFragmentProcessor& other) const { const GrNestedCall& that = other.cast(); (void) that; return true; } GrNestedCall::GrNestedCall(const GrNestedCall& src) : INHERITED(kGrNestedCall_ClassID, src.optimizationFlags()) { this->cloneAndRegisterAllChildProcessors(src); } std::unique_ptr GrNestedCall::clone() const { return std::make_unique(*this); } #if GR_TEST_UTILS SkString GrNestedCall::onDumpInfo() const { return SkString(); } #endif