Index: src/gpu/effects/GrOvalEffect.cpp |
diff --git a/src/gpu/effects/GrOvalEffect.cpp b/src/gpu/effects/GrOvalEffect.cpp |
index e7b52359fc0d01d693fa4cd288b913529f7c8be2..729e8a599c7bb8253813b935bac23082c20f89c5 100644 |
--- a/src/gpu/effects/GrOvalEffect.cpp |
+++ b/src/gpu/effects/GrOvalEffect.cpp |
@@ -93,12 +93,7 @@ class GLCircleEffect : public GrGLFragmentProcessor { |
public: |
GLCircleEffect(const GrProcessor&); |
- virtual void emitCode(GrGLFPBuilder* builder, |
- const GrFragmentProcessor& fp, |
- const char* outputColor, |
- const char* inputColor, |
- const TransformedCoordsArray&, |
- const TextureSamplerArray&) override; |
+ virtual void emitCode(EmitArgs&) override; |
static inline void GenKey(const GrProcessor&, const GrGLSLCaps&, GrProcessorKeyBuilder*); |
@@ -116,22 +111,17 @@ GLCircleEffect::GLCircleEffect(const GrProcessor&) { |
fPrevRadius = -1.f; |
} |
-void GLCircleEffect::emitCode(GrGLFPBuilder* builder, |
- const GrFragmentProcessor& fp, |
- const char* outputColor, |
- const char* inputColor, |
- const TransformedCoordsArray&, |
- const TextureSamplerArray& samplers) { |
- const CircleEffect& ce = fp.cast<CircleEffect>(); |
+void GLCircleEffect::emitCode(EmitArgs& args) { |
+ const CircleEffect& ce = args.fFp.cast<CircleEffect>(); |
const char *circleName; |
// The circle uniform is (center.x, center.y, radius + 0.5, 1 / (radius + 0.5)) for regular |
// fills and (..., radius - 0.5, 1 / (radius - 0.5)) for inverse fills. |
- fCircleUniform = builder->addUniform(GrGLProgramBuilder::kFragment_Visibility, |
+ fCircleUniform = args.fBuilder->addUniform(GrGLProgramBuilder::kFragment_Visibility, |
kVec4f_GrSLType, kDefault_GrSLPrecision, |
"circle", |
&circleName); |
- GrGLFragmentBuilder* fsBuilder = builder->getFragmentShaderBuilder(); |
+ GrGLFragmentBuilder* fsBuilder = args.fBuilder->getFragmentShaderBuilder(); |
const char* fragmentPos = fsBuilder->fragmentPosition(); |
SkASSERT(kHairlineAA_GrProcessorEdgeType != ce.getEdgeType()); |
@@ -152,8 +142,8 @@ void GLCircleEffect::emitCode(GrGLFPBuilder* builder, |
fsBuilder->codeAppend("\t\td = d > 0.5 ? 1.0 : 0.0;\n"); |
} |
- fsBuilder->codeAppendf("\t\t%s = %s;\n", outputColor, |
- (GrGLSLExpr4(inputColor) * GrGLSLExpr1("d")).c_str()); |
+ fsBuilder->codeAppendf("\t\t%s = %s;\n", args.fOutputColor, |
+ (GrGLSLExpr4(args.fInputColor) * GrGLSLExpr1("d")).c_str()); |
} |
void GLCircleEffect::GenKey(const GrProcessor& processor, const GrGLSLCaps&, |
@@ -273,12 +263,7 @@ class GLEllipseEffect : public GrGLFragmentProcessor { |
public: |
GLEllipseEffect(const GrProcessor&); |
- virtual void emitCode(GrGLFPBuilder* builder, |
- const GrFragmentProcessor& fp, |
- const char* outputColor, |
- const char* inputColor, |
- const TransformedCoordsArray&, |
- const TextureSamplerArray&) override; |
+ virtual void emitCode(EmitArgs&) override; |
static inline void GenKey(const GrProcessor&, const GrGLSLCaps&, GrProcessorKeyBuilder*); |
@@ -296,21 +281,16 @@ GLEllipseEffect::GLEllipseEffect(const GrProcessor& effect) { |
fPrevRadii.fX = -1.f; |
} |
-void GLEllipseEffect::emitCode(GrGLFPBuilder* builder, |
- const GrFragmentProcessor& fp, |
- const char* outputColor, |
- const char* inputColor, |
- const TransformedCoordsArray&, |
- const TextureSamplerArray& samplers) { |
- const EllipseEffect& ee = fp.cast<EllipseEffect>(); |
+void GLEllipseEffect::emitCode(EmitArgs& args) { |
+ const EllipseEffect& ee = args.fFp.cast<EllipseEffect>(); |
const char *ellipseName; |
// The ellipse uniform is (center.x, center.y, 1 / rx^2, 1 / ry^2) |
- fEllipseUniform = builder->addUniform(GrGLProgramBuilder::kFragment_Visibility, |
+ fEllipseUniform = args.fBuilder->addUniform(GrGLProgramBuilder::kFragment_Visibility, |
kVec4f_GrSLType, kDefault_GrSLPrecision, |
"ellipse", |
&ellipseName); |
- GrGLFragmentBuilder* fsBuilder = builder->getFragmentShaderBuilder(); |
+ GrGLFragmentBuilder* fsBuilder = args.fBuilder->getFragmentShaderBuilder(); |
const char* fragmentPos = fsBuilder->fragmentPosition(); |
// d is the offset to the ellipse center |
@@ -341,8 +321,8 @@ void GLEllipseEffect::emitCode(GrGLFPBuilder* builder, |
SkFAIL("Hairline not expected here."); |
} |
- fsBuilder->codeAppendf("\t\t%s = %s;\n", outputColor, |
- (GrGLSLExpr4(inputColor) * GrGLSLExpr1("alpha")).c_str()); |
+ fsBuilder->codeAppendf("\t\t%s = %s;\n", args.fOutputColor, |
+ (GrGLSLExpr4(args.fInputColor) * GrGLSLExpr1("alpha")).c_str()); |
} |
void GLEllipseEffect::GenKey(const GrProcessor& effect, const GrGLSLCaps&, |