aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/verylargebitmap.cpp
diff options
context:
space:
mode:
authorGravatar Brian Salomon <bsalomon@google.com>2016-11-14 14:41:58 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2016-11-14 20:14:03 +0000
commitd93f4a4291acff1032169ac903ac29b69659ea51 (patch)
tree86d6967f330cac22067942eb09d1ad072ac81f44 /gm/verylargebitmap.cpp
parentfcfc4bac7f844db353875cd025a846ddb3f917e3 (diff)
Compute the correct dst->src rect for bitmap tiles in SkGpuDevice
Use anisotropic scale to show bug in verylargebitmap test. BUG=chromium:664615 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4774 Change-Id: If92eab6d26b9fb506670412a80df259f99db2a21 Reviewed-on: https://skia-review.googlesource.com/4774 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'gm/verylargebitmap.cpp')
-rw-r--r--gm/verylargebitmap.cpp32
1 files changed, 16 insertions, 16 deletions
diff --git a/gm/verylargebitmap.cpp b/gm/verylargebitmap.cpp
index 9f1c05f9b3..08ca481c43 100644
--- a/gm/verylargebitmap.cpp
+++ b/gm/verylargebitmap.cpp
@@ -41,28 +41,28 @@ static void show_image(SkCanvas* canvas, int width, int height, SkColor colors[2
ImageMakerProc proc) {
sk_sp<SkImage> image(proc(width, height, colors));
- SkPaint paint;
- SkRect r;
- SkIRect ir;
+ SkPaint borderPaint;
- paint.setStyle(SkPaint::kStroke_Style);
+ borderPaint.setStyle(SkPaint::kStroke_Style);
- ir.set(0, 0, 128, 128);
- r.set(ir);
+ SkRect dstRect = SkRect::MakeWH(128.f, 128.f);
canvas->save();
- canvas->clipRect(r);
+ canvas->clipRect(dstRect);
canvas->drawImage(image, 0, 0, nullptr);
canvas->restore();
- canvas->drawRect(r, paint);
-
- r.offset(SkIntToScalar(150), 0);
- canvas->drawImageRect(image, ir, r, nullptr);
- canvas->drawRect(r, paint);
-
- r.offset(SkIntToScalar(150), 0);
- canvas->drawImageRect(image, r, nullptr);
- canvas->drawRect(r, paint);
+ canvas->drawRect(dstRect, borderPaint);
+
+ dstRect.offset(SkIntToScalar(150), 0);
+ int hw = width / 2;
+ int hh = height / 2;
+ SkIRect subset = SkIRect::MakeLTRB(hw - 64, hh - 32, hw + 64, hh + 32);
+ canvas->drawImageRect(image, subset, dstRect, nullptr);
+ canvas->drawRect(dstRect, borderPaint);
+
+ dstRect.offset(SkIntToScalar(150), 0);
+ canvas->drawImageRect(image, dstRect, nullptr);
+ canvas->drawRect(dstRect, borderPaint);
}
class VeryLargeBitmapGM : public skiagm::GM {