aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu
diff options
context:
space:
mode:
authorGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-11-07 16:06:53 +0000
committerGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-11-07 16:06:53 +0000
commit126f7f5244502c0cbf1e5fec1d2ad7a0f2eb6c34 (patch)
treea68d005f0c598b17d4bf3fbe06537d06f9b9b76d /src/gpu
parentc51808445fa21d8527444ff0fba202872be8c1b7 (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.cpp16
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,