| Index: src/gpu/effects/GrOvalEffect.cpp
|
| diff --git a/src/gpu/effects/GrOvalEffect.cpp b/src/gpu/effects/GrOvalEffect.cpp
|
| index 7d44fee6a299ce491a69f3e4082fae9f6d0faeb0..94c5acd949471913193d4411500cbdcf118b52d7 100644
|
| --- a/src/gpu/effects/GrOvalEffect.cpp
|
| +++ b/src/gpu/effects/GrOvalEffect.cpp
|
| @@ -124,8 +124,8 @@ void GLCircleEffect::emitCode(EmitArgs& args) {
|
| "circle",
|
| &circleName);
|
|
|
| - GrGLSLFragmentBuilder* fsBuilder = args.fBuilder->getFragmentShaderBuilder();
|
| - const char* fragmentPos = fsBuilder->fragmentPosition();
|
| + GrGLSLFragmentBuilder* fragBuilder = args.fFragBuilder;
|
| + const char* fragmentPos = fragBuilder->fragmentPosition();
|
|
|
| SkASSERT(kHairlineAA_GrProcessorEdgeType != ce.getEdgeType());
|
| // TODO: Right now the distance to circle caclulation is performed in a space normalized to the
|
| @@ -133,20 +133,20 @@ void GLCircleEffect::emitCode(EmitArgs& args) {
|
| // mediump. It'd be nice to only to this on mediump devices but we currently don't have the
|
| // caps here.
|
| if (GrProcessorEdgeTypeIsInverseFill(ce.getEdgeType())) {
|
| - fsBuilder->codeAppendf("\t\tfloat d = (length((%s.xy - %s.xy) * %s.w) - 1.0) * %s.z;\n",
|
| - circleName, fragmentPos, circleName, circleName);
|
| + fragBuilder->codeAppendf("\t\tfloat d = (length((%s.xy - %s.xy) * %s.w) - 1.0) * %s.z;\n",
|
| + circleName, fragmentPos, circleName, circleName);
|
| } else {
|
| - fsBuilder->codeAppendf("\t\tfloat d = (1.0 - length((%s.xy - %s.xy) * %s.w)) * %s.z;\n",
|
| - circleName, fragmentPos, circleName, circleName);
|
| + fragBuilder->codeAppendf("\t\tfloat d = (1.0 - length((%s.xy - %s.xy) * %s.w)) * %s.z;\n",
|
| + circleName, fragmentPos, circleName, circleName);
|
| }
|
| if (GrProcessorEdgeTypeIsAA(ce.getEdgeType())) {
|
| - fsBuilder->codeAppend("\t\td = clamp(d, 0.0, 1.0);\n");
|
| + fragBuilder->codeAppend("\t\td = clamp(d, 0.0, 1.0);\n");
|
| } else {
|
| - fsBuilder->codeAppend("\t\td = d > 0.5 ? 1.0 : 0.0;\n");
|
| + fragBuilder->codeAppend("\t\td = d > 0.5 ? 1.0 : 0.0;\n");
|
| }
|
|
|
| - fsBuilder->codeAppendf("\t\t%s = %s;\n", args.fOutputColor,
|
| - (GrGLSLExpr4(args.fInputColor) * GrGLSLExpr1("d")).c_str());
|
| + fragBuilder->codeAppendf("\t\t%s = %s;\n", args.fOutputColor,
|
| + (GrGLSLExpr4(args.fInputColor) * GrGLSLExpr1("d")).c_str());
|
| }
|
|
|
| void GLCircleEffect::GenKey(const GrProcessor& processor, const GrGLSLCaps&,
|
| @@ -296,39 +296,39 @@ void GLEllipseEffect::emitCode(EmitArgs& args) {
|
| "ellipse",
|
| &ellipseName);
|
|
|
| - GrGLSLFragmentBuilder* fsBuilder = args.fBuilder->getFragmentShaderBuilder();
|
| - const char* fragmentPos = fsBuilder->fragmentPosition();
|
| + GrGLSLFragmentBuilder* fragBuilder = args.fFragBuilder;
|
| + const char* fragmentPos = fragBuilder->fragmentPosition();
|
|
|
| // d is the offset to the ellipse center
|
| - fsBuilder->codeAppendf("\t\tvec2 d = %s.xy - %s.xy;\n", fragmentPos, ellipseName);
|
| - fsBuilder->codeAppendf("\t\tvec2 Z = d * %s.zw;\n", ellipseName);
|
| + fragBuilder->codeAppendf("\t\tvec2 d = %s.xy - %s.xy;\n", fragmentPos, ellipseName);
|
| + fragBuilder->codeAppendf("\t\tvec2 Z = d * %s.zw;\n", ellipseName);
|
| // implicit is the evaluation of (x/rx)^2 + (y/ry)^2 - 1.
|
| - fsBuilder->codeAppend("\t\tfloat implicit = dot(Z, d) - 1.0;\n");
|
| + fragBuilder->codeAppend("\t\tfloat implicit = dot(Z, d) - 1.0;\n");
|
| // grad_dot is the squared length of the gradient of the implicit.
|
| - fsBuilder->codeAppendf("\t\tfloat grad_dot = 4.0 * dot(Z, Z);\n");
|
| + fragBuilder->codeAppendf("\t\tfloat grad_dot = 4.0 * dot(Z, Z);\n");
|
| // avoid calling inversesqrt on zero.
|
| - fsBuilder->codeAppend("\t\tgrad_dot = max(grad_dot, 1.0e-4);\n");
|
| - fsBuilder->codeAppendf("\t\tfloat approx_dist = implicit * inversesqrt(grad_dot);\n");
|
| + fragBuilder->codeAppend("\t\tgrad_dot = max(grad_dot, 1.0e-4);\n");
|
| + fragBuilder->codeAppendf("\t\tfloat approx_dist = implicit * inversesqrt(grad_dot);\n");
|
|
|
| switch (ee.getEdgeType()) {
|
| case kFillAA_GrProcessorEdgeType:
|
| - fsBuilder->codeAppend("\t\tfloat alpha = clamp(0.5 - approx_dist, 0.0, 1.0);\n");
|
| + fragBuilder->codeAppend("\t\tfloat alpha = clamp(0.5 - approx_dist, 0.0, 1.0);\n");
|
| break;
|
| case kInverseFillAA_GrProcessorEdgeType:
|
| - fsBuilder->codeAppend("\t\tfloat alpha = clamp(0.5 + approx_dist, 0.0, 1.0);\n");
|
| + fragBuilder->codeAppend("\t\tfloat alpha = clamp(0.5 + approx_dist, 0.0, 1.0);\n");
|
| break;
|
| case kFillBW_GrProcessorEdgeType:
|
| - fsBuilder->codeAppend("\t\tfloat alpha = approx_dist > 0.0 ? 0.0 : 1.0;\n");
|
| + fragBuilder->codeAppend("\t\tfloat alpha = approx_dist > 0.0 ? 0.0 : 1.0;\n");
|
| break;
|
| case kInverseFillBW_GrProcessorEdgeType:
|
| - fsBuilder->codeAppend("\t\tfloat alpha = approx_dist > 0.0 ? 1.0 : 0.0;\n");
|
| + fragBuilder->codeAppend("\t\tfloat alpha = approx_dist > 0.0 ? 1.0 : 0.0;\n");
|
| break;
|
| case kHairlineAA_GrProcessorEdgeType:
|
| SkFAIL("Hairline not expected here.");
|
| }
|
|
|
| - fsBuilder->codeAppendf("\t\t%s = %s;\n", args.fOutputColor,
|
| - (GrGLSLExpr4(args.fInputColor) * GrGLSLExpr1("alpha")).c_str());
|
| + fragBuilder->codeAppendf("\t\t%s = %s;\n", args.fOutputColor,
|
| + (GrGLSLExpr4(args.fInputColor) * GrGLSLExpr1("alpha")).c_str());
|
| }
|
|
|
| void GLEllipseEffect::GenKey(const GrProcessor& effect, const GrGLSLCaps&,
|
|
|