| Index: src/gpu/GrAARectRenderer.cpp
|
| ===================================================================
|
| --- src/gpu/GrAARectRenderer.cpp (revision 9828)
|
| +++ src/gpu/GrAARectRenderer.cpp (working copy)
|
| @@ -472,7 +472,11 @@
|
| if (useVertexCoverage) {
|
| innerColor = GrColorPackRGBA(scale, scale, scale, scale);
|
| } else {
|
| - innerColor = SkAlphaMulQ(target->getDrawState().getColor(), scale);
|
| + if (0xff == scale) {
|
| + innerColor = target->getDrawState().getColor();
|
| + } else {
|
| + innerColor = SkAlphaMulQ(target->getDrawState().getColor(), scale);
|
| + }
|
| }
|
|
|
| verts += 4 * vsize;
|
| @@ -724,6 +728,7 @@
|
| GrPoint* fan2Pos = reinterpret_cast<GrPoint*>(verts + 8 * vsize);
|
| GrPoint* fan3Pos = reinterpret_cast<GrPoint*>(verts + 12 * vsize);
|
|
|
| +#ifndef SK_IGNORE_THIN_STROKED_RECT_FIX
|
| // TODO: this only really works if the X & Y margins are the same all around
|
| // the rect
|
| SkScalar inset = SkMinScalar(SK_Scalar1, devOutside.fRight - devInside.fRight);
|
| @@ -731,6 +736,9 @@
|
| inset = SkMinScalar(inset, devInside.fTop - devOutside.fTop);
|
| inset = SK_ScalarHalf * SkMinScalar(inset, devOutside.fBottom - devInside.fBottom);
|
| SkASSERT(inset >= 0);
|
| +#else
|
| + SkScalar inset = SK_ScalarHalf;
|
| +#endif
|
|
|
| // outermost
|
| set_inset_fan(fan0Pos, vsize, devOutside, -SK_ScalarHalf, -SK_ScalarHalf);
|
| @@ -759,7 +767,11 @@
|
| if (useVertexCoverage) {
|
| innerColor = GrColorPackRGBA(scale, scale, scale, scale);
|
| } else {
|
| - innerColor = SkAlphaMulQ(target->getDrawState().getColor(), scale);
|
| + if (0xff == scale) {
|
| + innerColor = target->getDrawState().getColor();
|
| + } else {
|
| + innerColor = SkAlphaMulQ(target->getDrawState().getColor(), scale);
|
| + }
|
| }
|
|
|
| verts += 4 * vsize;
|
|
|