Index: src/core/SkPicturePlayback.cpp |
diff --git a/src/core/SkPicturePlayback.cpp b/src/core/SkPicturePlayback.cpp |
index 78b65d6d7b7d161a067e99a8553741507558b550..a64bf0ff5eb1da35c7db277d69860df409abd9eb 100644 |
--- a/src/core/SkPicturePlayback.cpp |
+++ b/src/core/SkPicturePlayback.cpp |
@@ -71,15 +71,18 @@ |
if (fUseBBH) { |
SkRect clipBounds; |
if (canvas->getClipBounds(&clipBounds)) { |
- return fPictureData->getActiveOps(clipBounds); |
- } |
- } |
+ SkIRect query; |
+ clipBounds.roundOut(&query); |
+ |
+ return fPictureData->getActiveOps(query); |
+ } |
+ } |
return NULL; |
} |
// Initialize the state tree iterator. Return false if there is nothing left to draw. |
-bool SkPicturePlayback::initIterator(SkPictureStateTree::Iterator* iter, |
+bool SkPicturePlayback::initIterator(SkPictureStateTree::Iterator* iter, |
SkCanvas* canvas, |
const SkPicture::OperationList *activeOpsList) { |
@@ -169,9 +172,9 @@ |
} |
} |
-void SkPicturePlayback::handleOp(SkReader32* reader, |
- DrawType op, |
- uint32_t size, |
+void SkPicturePlayback::handleOp(SkReader32* reader, |
+ DrawType op, |
+ uint32_t size, |
SkCanvas* canvas, |
const SkMatrix& initialMatrix) { |
switch (op) { |
@@ -307,7 +310,7 @@ |
break; |
case DRAW_PATCH: { |
const SkPaint& paint = *fPictureData->getPaint(reader); |
- |
+ |
const SkPoint* cubics = (const SkPoint*)reader->skip(SkPatchUtils::kNumCtrlPts * |
sizeof(SkPoint)); |
uint32_t flag = reader->readInt(); |