| Index: src/effects/SkAlphaThresholdFilter.cpp
|
| diff --git a/src/effects/SkAlphaThresholdFilter.cpp b/src/effects/SkAlphaThresholdFilter.cpp
|
| index 55e113efe17cee20b7c98f245521c19816908290..c9d72bb67305dff45d7d3591bf667333bd1a5865 100644
|
| --- a/src/effects/SkAlphaThresholdFilter.cpp
|
| +++ b/src/effects/SkAlphaThresholdFilter.cpp
|
| @@ -128,12 +128,7 @@ class GrGLAlphaThresholdEffect : public GrGLFragmentProcessor {
|
| public:
|
| GrGLAlphaThresholdEffect(const GrFragmentProcessor&) {}
|
|
|
| - virtual void emitCode(GrGLFPBuilder*,
|
| - const GrFragmentProcessor&,
|
| - const char* outputColor,
|
| - const char* inputColor,
|
| - const TransformedCoordsArray&,
|
| - const TextureSamplerArray&) override;
|
| + virtual void emitCode(EmitArgs&) override;
|
|
|
| void setData(const GrGLProgramDataManager&, const GrProcessor&) override;
|
|
|
| @@ -145,38 +140,33 @@ private:
|
| typedef GrGLFragmentProcessor INHERITED;
|
| };
|
|
|
| -void GrGLAlphaThresholdEffect::emitCode(GrGLFPBuilder* builder,
|
| - const GrFragmentProcessor&,
|
| - const char* outputColor,
|
| - const char* inputColor,
|
| - const TransformedCoordsArray& coords,
|
| - const TextureSamplerArray& samplers) {
|
| - fInnerThresholdVar = builder->addUniform(
|
| +void GrGLAlphaThresholdEffect::emitCode(EmitArgs& args) {
|
| + fInnerThresholdVar = args.fBuilder->addUniform(
|
| GrGLProgramBuilder::kFragment_Visibility,
|
| kFloat_GrSLType, kDefault_GrSLPrecision,
|
| "inner_threshold");
|
| - fOuterThresholdVar = builder->addUniform(
|
| + fOuterThresholdVar = args.fBuilder->addUniform(
|
| GrGLProgramBuilder::kFragment_Visibility,
|
| kFloat_GrSLType, kDefault_GrSLPrecision,
|
| "outer_threshold");
|
|
|
| - GrGLFragmentBuilder* fsBuilder = builder->getFragmentShaderBuilder();
|
| - SkString coords2D = fsBuilder->ensureFSCoords2D(coords, 0);
|
| - SkString maskCoords2D = fsBuilder->ensureFSCoords2D(coords, 1);
|
| + GrGLFragmentBuilder* fsBuilder = args.fBuilder->getFragmentShaderBuilder();
|
| + SkString coords2D = fsBuilder->ensureFSCoords2D(args.fCoords, 0);
|
| + SkString maskCoords2D = fsBuilder->ensureFSCoords2D(args.fCoords, 1);
|
|
|
| fsBuilder->codeAppendf("\t\tvec2 coord = %s;\n", coords2D.c_str());
|
| fsBuilder->codeAppendf("\t\tvec2 mask_coord = %s;\n", maskCoords2D.c_str());
|
| fsBuilder->codeAppend("\t\tvec4 input_color = ");
|
| - fsBuilder->appendTextureLookup(samplers[0], "coord");
|
| + fsBuilder->appendTextureLookup(args.fSamplers[0], "coord");
|
| fsBuilder->codeAppend(";\n");
|
| fsBuilder->codeAppend("\t\tvec4 mask_color = ");
|
| - fsBuilder->appendTextureLookup(samplers[1], "mask_coord");
|
| + fsBuilder->appendTextureLookup(args.fSamplers[1], "mask_coord");
|
| fsBuilder->codeAppend(";\n");
|
|
|
| fsBuilder->codeAppendf("\t\tfloat inner_thresh = %s;\n",
|
| - builder->getUniformCStr(fInnerThresholdVar));
|
| + args.fBuilder->getUniformCStr(fInnerThresholdVar));
|
| fsBuilder->codeAppendf("\t\tfloat outer_thresh = %s;\n",
|
| - builder->getUniformCStr(fOuterThresholdVar));
|
| + args.fBuilder->getUniformCStr(fOuterThresholdVar));
|
| fsBuilder->codeAppend("\t\tfloat mask = mask_color.a;\n");
|
|
|
| fsBuilder->codeAppend("vec4 color = input_color;\n");
|
| @@ -192,8 +182,8 @@ void GrGLAlphaThresholdEffect::emitCode(GrGLFPBuilder* builder,
|
| "\t\t\tcolor.a = inner_thresh;\n"
|
| "\t\t}\n");
|
|
|
| - fsBuilder->codeAppendf("%s = %s;\n", outputColor,
|
| - (GrGLSLExpr4(inputColor) * GrGLSLExpr4("color")).c_str());
|
| + fsBuilder->codeAppendf("%s = %s;\n", args.fOutputColor,
|
| + (GrGLSLExpr4(args.fInputColor) * GrGLSLExpr4("color")).c_str());
|
| }
|
|
|
| void GrGLAlphaThresholdEffect::setData(const GrGLProgramDataManager& pdman,
|
|
|