diff options
author | 2013-11-07 16:06:53 +0000 | |
---|---|---|
committer | 2013-11-07 16:06:53 +0000 | |
commit | 126f7f5244502c0cbf1e5fec1d2ad7a0f2eb6c34 (patch) | |
tree | a68d005f0c598b17d4bf3fbe06537d06f9b9b76d /src/gpu | |
parent | c51808445fa21d8527444ff0fba202872be8c1b7 (diff) |
Revert "Revert "speed up A8 by creating a new entry-point in SkDraw that blits the path's coverage directly into an A8 target, regardless of the previous pixel values.""
This reverts commit 3c77887b3eb2d32ab668ab4e5f2f9e79103956e8.
BUG=
Review URL: https://codereview.chromium.org/50673005
git-svn-id: http://skia.googlecode.com/svn/trunk@12167 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/gpu')
-rw-r--r-- | src/gpu/GrSWMaskHelper.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/gpu/GrSWMaskHelper.cpp b/src/gpu/GrSWMaskHelper.cpp index 5fb944bac4..eefc951e7e 100644 --- a/src/gpu/GrSWMaskHelper.cpp +++ b/src/gpu/GrSWMaskHelper.cpp @@ -73,16 +73,16 @@ void GrSWMaskHelper::draw(const SkPath& path, const SkStrokeRec& stroke, SkRegio paint.setStrokeWidth(stroke.getWidth()); } } - - SkXfermode* mode = SkXfermode::Create(op_to_mode(op)); - - paint.setXfermode(mode); paint.setAntiAlias(antiAlias); - paint.setColor(SkColorSetARGB(alpha, alpha, alpha, alpha)); - fDraw.drawPath(path, paint); - - SkSafeUnref(mode); + if (SkRegion::kReplace_Op == op && 0xFF == alpha) { + SkASSERT(0xFF == paint.getAlpha()); + fDraw.drawPathCoverage(path, paint); + } else { + paint.setXfermodeMode(op_to_mode(op)); + paint.setColor(SkColorSetARGB(alpha, alpha, alpha, alpha)); + fDraw.drawPath(path, paint); + } } bool GrSWMaskHelper::init(const SkIRect& resultBounds, |