aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-03-26 14:36:55 +0000
committerGravatar bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-03-26 14:36:55 +0000
commit22f42b71fc7f120e995b6e90e9fca8584438192c (patch)
treecd06a32ddaf97bff9ebed6967f512be8048dc3e4
parentd8bf41bf2238f6b90ce9b869642836e509a2a542 (diff)
[GPU] when paint has patheffect, it should fallback to path render
Comitted on behalf of Guanqun.Lu@gmail.com THIS MAY CAUSE GM TO GO RED, WILL REBASELINE. Review URL: http://codereview.appspot.com/5885057/ git-svn-id: http://skia.googlecode.com/svn/trunk@3487 2bbb7eff-a529-9590-31e7-b0007b416f81
-rw-r--r--gm/patheffects.cpp10
-rw-r--r--src/gpu/SkGpuDevice.cpp4
2 files changed, 12 insertions, 2 deletions
diff --git a/gm/patheffects.cpp b/gm/patheffects.cpp
index c60611651f..c4cb4997d1 100644
--- a/gm/patheffects.cpp
+++ b/gm/patheffects.cpp
@@ -146,6 +146,16 @@ protected:
canvas->drawPath(path, paint);
canvas->translate(0, 160);
}
+
+ SkIRect rect = SkIRect::MakeXYWH(20, 20, 60, 60);
+ for (i = 0; i < SK_ARRAY_COUNT(gPE); i++) {
+ SkPaint p;
+ p.setAntiAlias(true);
+ p.setStyle(SkPaint::kFill_Style);
+ gPE[i](&p);
+ canvas->drawIRect(rect, p);
+ canvas->translate(75, 0);
+ }
}
private:
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
index 0ac4ed52d8..703153bbb1 100644
--- a/src/gpu/SkGpuDevice.cpp
+++ b/src/gpu/SkGpuDevice.cpp
@@ -674,8 +674,8 @@ void SkGpuDevice::drawRect(const SkDraw& draw, const SkRect& rect,
*/
bool usePath = doStroke && width > 0 &&
paint.getStrokeJoin() != SkPaint::kMiter_Join;
- // another reason we might need to call drawPath...
- if (paint.getMaskFilter()) {
+ // another two reasons we might need to call drawPath...
+ if (paint.getMaskFilter() || paint.getPathEffect()) {
usePath = true;
}
// until we aa rotated rects...