SkPoint drawSet(SkCanvas* canvas, const ImageSet& set, const SkPaint& paint) const { SkASSERT(set.fImages.count() == set.fScales.count()); SkPoint pt = SkPoint::Make(0, 0); for (int i = 0; i < set.fImages.count(); ++i) { auto& img = set.fImages[i]; const SkRect dst = SkRect::MakeXYWH(pt.x(), pt.y(), img->width() * (1 + (set.fScales[i] - 1) * set.fVector.x()), img->height() * (1 + (set.fScales[i] - 1) * set.fVector.y())); canvas->drawImageRect(img.get(), dst, &paint); pt.offset(dst.width() * set.fVector.x(), dst.height() * set.fVector.y()); } return pt; }