Chromium Code Reviews| Index: src/effects/SkColorMatrixFilter.cpp |
| diff --git a/src/effects/SkColorMatrixFilter.cpp b/src/effects/SkColorMatrixFilter.cpp |
| index 205bcdb49100ddec2be6f946a8d32d794c394069..afc16546aa14d81e194bc0e049a44cb1f93eff1b 100644 |
| --- a/src/effects/SkColorMatrixFilter.cpp |
| +++ b/src/effects/SkColorMatrixFilter.cpp |
| @@ -413,34 +413,29 @@ public: |
| GLProcessor(const GrProcessor&) {} |
| - virtual void emitCode(GrGLFPBuilder* builder, |
| - const GrFragmentProcessor&, |
| - const char* outputColor, |
| - const char* inputColor, |
| - const TransformedCoordsArray&, |
| - const TextureSamplerArray&) override { |
| - fMatrixHandle = builder->addUniform(GrGLProgramBuilder::kFragment_Visibility, |
| + virtual void emitCode(EmitArgs& args) override { |
| + fMatrixHandle = args.fBuilder->addUniform(GrGLProgramBuilder::kFragment_Visibility, |
| kMat44f_GrSLType, kDefault_GrSLPrecision, |
| "ColorMatrix"); |
| - fVectorHandle = builder->addUniform(GrGLProgramBuilder::kFragment_Visibility, |
| + fVectorHandle = args.fBuilder->addUniform(GrGLProgramBuilder::kFragment_Visibility, |
| kVec4f_GrSLType, kDefault_GrSLPrecision, |
| "ColorMatrixVector"); |
| - if (NULL == inputColor) { |
| + if (NULL == args.fInputColor) { |
| // could optimize this case, but we aren't for now. |
| - inputColor = "vec4(1)"; |
| + args.fInputColor = "vec4(1)"; |
| } |
| - GrGLFragmentBuilder* fsBuilder = builder->getFragmentShaderBuilder(); |
| + GrGLFragmentBuilder* fsBuilder = args.fBuilder->getFragmentShaderBuilder(); |
| // The max() is to guard against 0 / 0 during unpremul when the incoming color is |
| // transparent black. |
| - fsBuilder->codeAppendf("\tfloat nonZeroAlpha = max(%s.a, 0.00001);\n", inputColor); |
| + fsBuilder->codeAppendf("\tfloat nonZeroAlpha = max(%s.a, 0.00001);\n", args.fInputColor); |
|
joshualitt
2015/07/22 19:34:04
line wrap @100
|
| fsBuilder->codeAppendf("\t%s = %s * vec4(%s.rgb / nonZeroAlpha, nonZeroAlpha) + %s;\n", |
| - outputColor, |
| - builder->getUniformCStr(fMatrixHandle), |
| - inputColor, |
| - builder->getUniformCStr(fVectorHandle)); |
| - fsBuilder->codeAppendf("\t%s = clamp(%s, 0.0, 1.0);\n", outputColor, outputColor); |
| - fsBuilder->codeAppendf("\t%s.rgb *= %s.a;\n", outputColor, outputColor); |
| + args.fOutputColor, |
| + args.fBuilder->getUniformCStr(fMatrixHandle), |
| + args.fInputColor, |
| + args.fBuilder->getUniformCStr(fVectorHandle)); |
| + fsBuilder->codeAppendf("\t%s = clamp(%s, 0.0, 1.0);\n", args.fOutputColor, args.fOutputColor); |
|
joshualitt
2015/07/22 19:34:04
line wrap @100
|
| + fsBuilder->codeAppendf("\t%s.rgb *= %s.a;\n", args.fOutputColor, args.fOutputColor); |
| } |
| virtual void setData(const GrGLProgramDataManager& uniManager, |