diff --git a/src/core/SkDraw.cpp b/src/core/SkDraw.cpp index 45f7bb2de9..e5027d4a55 100644 --- a/src/core/SkDraw.cpp +++ b/src/core/SkDraw.cpp @@ -862,7 +862,15 @@ bool SkDrawTreatAsHairline(const SkPaint& paint, const SkMatrix& matrix, SkScalar len1 = fast_len(dst[1]); if (len0 <= SK_Scalar1 && len1 <= SK_Scalar1) { SkScalar modulate = SkScalarAve(len0, len1); +#if 0 *newAlpha = SkToU8(SkScalarRoundToInt(modulate * paint.getAlpha())); +#else + // this is the old technique, which we preserve for now so we don't + // change previous results (testing) + // the new way seems fine, its just (a tiny bit) different + int scale = (int)SkScalarMul(modulate, 256); + *newAlpha = paint.getAlpha() * scale >> 8; +#endif return true; } return false;