| 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);
|
|
|