summaryrefslogtreecommitdiff
path: root/libs/hwui/SkiaCanvas.cpp
diff options
context:
space:
mode:
author Nader Jawad <njawad@google.com> 2019-12-04 14:13:18 -0800
committer Nader Jawad <njawad@google.com> 2020-01-10 16:41:13 -0800
commite431e316981e5021d496c19c90840f56fc702aba (patch)
tree98a0f7fed75d0d2b6fd07d900b1b3c0b1883ab2b /libs/hwui/SkiaCanvas.cpp
parentd261711e497cf81456e4255717e52236fc9e420e (diff)
Added support for antialiased canvas clipping
Updated native hwui implementation to pass in optional anti-alias flag to canvas clipping operations. Made the default behavior to enable canvas clipping Bug: 69115461 Test: Added test to CtsUiRenderingTestCases Change-Id: I996f4b56e161cdc9f1ec5eba9c30f94474520af5
Diffstat (limited to 'libs/hwui/SkiaCanvas.cpp')
-rw-r--r--libs/hwui/SkiaCanvas.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/libs/hwui/SkiaCanvas.cpp b/libs/hwui/SkiaCanvas.cpp
index 23140724ef64..7c49a1d653b7 100644
--- a/libs/hwui/SkiaCanvas.cpp
+++ b/libs/hwui/SkiaCanvas.cpp
@@ -217,13 +217,16 @@ public:
canvas->setMatrix(mMatrix);
switch (mType) {
case Type::Rect:
- canvas->clipRect(mRRect.rect(), mOp);
+ // Don't anti-alias rectangular clips
+ canvas->clipRect(mRRect.rect(), mOp, false);
break;
case Type::RRect:
- canvas->clipRRect(mRRect, mOp);
+ // Ensure rounded rectangular clips are anti-aliased
+ canvas->clipRRect(mRRect, mOp, true);
break;
case Type::Path:
- canvas->clipPath(mPath.value(), mOp);
+ // Ensure path clips are anti-aliased
+ canvas->clipPath(mPath.value(), mOp, true);
break;
}
}
@@ -392,7 +395,7 @@ bool SkiaCanvas::clipRect(float left, float top, float right, float bottom, SkCl
bool SkiaCanvas::clipPath(const SkPath* path, SkClipOp op) {
this->recordClip(*path, op);
- mCanvas->clipPath(*path, op);
+ mCanvas->clipPath(*path, op, true);
return !mCanvas->isClipEmpty();
}