Index: src/core/SkPicturePlayback.cpp |
diff --git a/src/core/SkPicturePlayback.cpp b/src/core/SkPicturePlayback.cpp |
index 1cf1a1bfb4726c15fe35edec2aec903bc0a09d9d..9095731cc6736a35c8fafd32161b0764396d4e35 100644 |
--- a/src/core/SkPicturePlayback.cpp |
+++ b/src/core/SkPicturePlayback.cpp |
@@ -249,12 +249,19 @@ void SkPicturePlayback::handleOp(SkReader32* reader, |
const SkRect& dst = reader->skipT<SkRect>(); |
canvas->drawImageNine(image, center, dst, paint); |
} break; |
+ case DRAW_IMAGE_RECT_STRICT: |
case DRAW_IMAGE_RECT: { |
const SkPaint* paint = fPictureData->getPaint(reader); |
const SkImage* image = fPictureData->getImage(reader); |
const SkRect* src = get_rect_ptr(reader); // may be null |
const SkRect& dst = reader->skipT<SkRect>(); // required |
- canvas->drawImageRect(image, src, dst, paint); |
+ // DRAW_IMAGE_RECT_STRICT assumes this constraint, and doesn't store it |
+ SkCanvas::SrcRectConstraint constraint = SkCanvas::kStrict_SrcRectConstraint; |
+ if (DRAW_IMAGE_RECT == op) { |
+ // newer op-code stores the constraint explicitly |
+ constraint = (SkCanvas::SrcRectConstraint)reader->readInt(); |
+ } |
+ canvas->drawImageRect(image, src, dst, paint, constraint); |
} break; |
case DRAW_OVAL: { |
const SkPaint& paint = *fPictureData->getPaint(reader); |