| Index: src/gpu/effects/GrConvexPolyEffect.cpp
|
| diff --git a/src/gpu/effects/GrConvexPolyEffect.cpp b/src/gpu/effects/GrConvexPolyEffect.cpp
|
| index 9d9792e2b9a7c6efeecb34c53613a32537e30f58..7035094fa6a57794c7a7f48b27747c18d2ffb613 100644
|
| --- a/src/gpu/effects/GrConvexPolyEffect.cpp
|
| +++ b/src/gpu/effects/GrConvexPolyEffect.cpp
|
| @@ -137,14 +137,10 @@
|
| fsBuilder->codeAppendf("\t\tfloat alpha = (1.0 + max(xSub, -1.0)) * (1.0 + max(ySub, -1.0));\n");
|
| } else {
|
| fsBuilder->codeAppendf("\t\tfloat alpha = 1.0;\n");
|
| - fsBuilder->codeAppendf("\t\talpha *= (%s.x - %s.x) > -0.5 ? 1.0 : 0.0;\n",
|
| - fragmentPos, rectName);
|
| - fsBuilder->codeAppendf("\t\talpha *= (%s.z - %s.x) > -0.5 ? 1.0 : 0.0;\n",
|
| - rectName, fragmentPos);
|
| - fsBuilder->codeAppendf("\t\talpha *= (%s.y - %s.y) > -0.5 ? 1.0 : 0.0;\n",
|
| - fragmentPos, rectName);
|
| - fsBuilder->codeAppendf("\t\talpha *= (%s.w - %s.y) > -0.5 ? 1.0 : 0.0;\n",
|
| - rectName, fragmentPos);
|
| + fsBuilder->codeAppendf("\t\talpha *= (%s.x - %s.x) > -0.5 ? 1.0 : 0.0;\n", fragmentPos, rectName);
|
| + fsBuilder->codeAppendf("\t\talpha *= (%s.z - %s.x) > -0.5 ? 1.0 : 0.0;\n", rectName, fragmentPos);
|
| + fsBuilder->codeAppendf("\t\talpha *= (%s.y - %s.y) > -0.5 ? 1.0 : 0.0;\n", fragmentPos, rectName);
|
| + fsBuilder->codeAppendf("\t\talpha *= (%s.w - %s.y) > -0.5 ? 1.0 : 0.0;\n", rectName, fragmentPos);
|
| }
|
|
|
| if (GrProcessorEdgeTypeIsInverseFill(aare.getEdgeType())) {
|
| @@ -158,10 +154,8 @@
|
| const AARectEffect& aare = processor.cast<AARectEffect>();
|
| const SkRect& rect = aare.getRect();
|
| if (rect != fPrevRect) {
|
| - // Add a device space "nudge" of 0.05f, 0.05f to match raster's rounding behavior for
|
| - // BW clipping/drawing
|
| - pdman.set4f(fRectUniform, rect.fLeft + 0.55f, rect.fTop + 0.55f,
|
| - rect.fRight - 0.45f, rect.fBottom - 0.45f);
|
| + pdman.set4f(fRectUniform, rect.fLeft + 0.5f, rect.fTop + 0.5f,
|
| + rect.fRight - 0.5f, rect.fBottom - 0.5f);
|
| fPrevRect = rect;
|
| }
|
| }
|
| @@ -227,10 +221,7 @@
|
| fsBuilder->codeAppend("\t\tfloat edge;\n");
|
| const char* fragmentPos = fsBuilder->fragmentPosition();
|
| for (int i = 0; i < cpe.getEdgeCount(); ++i) {
|
| - // Add a device space "nudge" of 0.05f, 0.05f to match raster's rounding behavior for
|
| - // BW clipping/drawing. Since we are "nudging" fragment positions we have to go in
|
| - // the opposite direction.
|
| - fsBuilder->codeAppendf("\t\tedge = dot(%s[%d], vec3(%s.x - 0.05f, %s.y - 0.05f, 1));\n",
|
| + fsBuilder->codeAppendf("\t\tedge = dot(%s[%d], vec3(%s.x, %s.y, 1));\n",
|
| edgeArrayName, i, fragmentPos, fragmentPos);
|
| if (GrProcessorEdgeTypeIsAA(cpe.getEdgeType())) {
|
| fsBuilder->codeAppend("\t\tedge = clamp(edge, 0.0, 1.0);\n");
|
|
|