aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkPicturePlayback.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/SkPicturePlayback.cpp')
-rw-r--r--src/core/SkPicturePlayback.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/core/SkPicturePlayback.cpp b/src/core/SkPicturePlayback.cpp
index b75ae40215..d922051e3f 100644
--- a/src/core/SkPicturePlayback.cpp
+++ b/src/core/SkPicturePlayback.cpp
@@ -509,9 +509,11 @@ void SkPicturePlayback::draw(SkCanvas& canvas) {
switch (fReader.readInt()) {
case CLIP_PATH: {
const SkPath& path = getPath();
- SkRegion::Op op = (SkRegion::Op) getInt();
+ uint32_t packed = getInt();
+ SkRegion::Op op = ClipParams_unpackRegionOp(packed);
+ bool doAA = ClipParams_unpackDoAA(packed);
size_t offsetToRestore = getInt();
- if (!canvas.clipPath(path, op) && offsetToRestore) {
+ if (!canvas.clipPath(path, op, doAA) && offsetToRestore) {
#ifdef SPEW_CLIP_SKIPPING
skipPath.recordSkip(offsetToRestore - fReader.offset());
#endif
@@ -520,7 +522,8 @@ void SkPicturePlayback::draw(SkCanvas& canvas) {
} break;
case CLIP_REGION: {
const SkRegion& region = getRegion();
- SkRegion::Op op = (SkRegion::Op) getInt();
+ uint32_t packed = getInt();
+ SkRegion::Op op = ClipParams_unpackRegionOp(packed);
size_t offsetToRestore = getInt();
if (!canvas.clipRegion(region, op) && offsetToRestore) {
#ifdef SPEW_CLIP_SKIPPING
@@ -531,9 +534,11 @@ void SkPicturePlayback::draw(SkCanvas& canvas) {
} break;
case CLIP_RECT: {
const SkRect& rect = fReader.skipT<SkRect>();
- SkRegion::Op op = (SkRegion::Op) getInt();
+ uint32_t packed = getInt();
+ SkRegion::Op op = ClipParams_unpackRegionOp(packed);
+ bool doAA = ClipParams_unpackDoAA(packed);
size_t offsetToRestore = getInt();
- if (!canvas.clipRect(rect, op) && offsetToRestore) {
+ if (!canvas.clipRect(rect, op, doAA) && offsetToRestore) {
#ifdef SPEW_CLIP_SKIPPING
skipRect.recordSkip(offsetToRestore - fReader.offset());
#endif