void emitCode(EmitArgs& args) override { GrGLFragmentBuilder* fsBuilder = args.fBuilder->getFragmentShaderBuilder(); SkString dstColor("dstColor"); this->emitChild(0, nullptr, &dstColor, args); fKUni = args.fBuilder->addUniform(GrGLProgramBuilder::kFragment_Visibility, kVec4f_GrSLType, kDefault_GrSLPrecision, "k"); const char* kUni = args.fBuilder->getUniformCStr(fKUni); add_arithmetic_code(fsBuilder, args.fInputColor, dstColor.c_str(), args.fOutputColor, kUni, fEnforcePMColor); }
void emitCode(EmitArgs& args) override { const GrArithmeticFP& arith = args.fFp.cast<GrArithmeticFP>(); GrGLSLFPFragmentBuilder* fragBuilder = args.fFragBuilder; SkString dstColor("dstColor"); this->emitChild(0, nullptr, &dstColor, args); fKUni = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kVec4f_GrSLType, kDefault_GrSLPrecision, "k"); const char* kUni = args.fUniformHandler->getUniformCStr(fKUni); add_arithmetic_code(fragBuilder, args.fInputColor, dstColor.c_str(), args.fOutputColor, kUni, arith.enforcePMColor()); }