aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm
diff options
context:
space:
mode:
authorGravatar Brian Salomon <bsalomon@google.com>2018-05-23 16:39:39 -0400
committerGravatar Stephen White <senorblanco@chromium.org>2018-05-26 18:33:39 +0000
commitb80ffee96c634c4cf0db9cae3ac16938ff604cdd (patch)
treedd6ac6be38d7ccda6028c2f74b455683bc9c2373 /gm
parent633f20ed34f99be198470edfaf6a5b03757cd50d (diff)
Reland "Add support for SkCanvas::kStrict_SrcRectConstraint to GrTextureOp."
This is a reland of a0047bcff704a9121a6d82a6f97d6124463a2e54 Original change's description: > Add support for SkCanvas::kStrict_SrcRectConstraint to GrTextureOp. > > Change-Id: I8faa2838b3110b8080ac48bbe223240e3fb22998 > Reviewed-on: https://skia-review.googlesource.com/129762 > Reviewed-by: Brian Osman <brianosman@google.com> > Commit-Queue: Brian Salomon <bsalomon@google.com> Change-Id: Icbad064ae2779f4e140a55e520c0034cd1d17477 Reviewed-on: https://skia-review.googlesource.com/130305 Reviewed-by: Stephen White <senorblanco@chromium.org>
Diffstat (limited to 'gm')
-rw-r--r--gm/perspimages.cpp34
1 files changed, 24 insertions, 10 deletions
diff --git a/gm/perspimages.cpp b/gm/perspimages.cpp
index a4242cf6f2..b4ad5eb9ae 100644
--- a/gm/perspimages.cpp
+++ b/gm/perspimages.cpp
@@ -28,7 +28,7 @@ public:
protected:
SkString onShortName() override { return SkString("persp_images"); }
- SkISize onISize() override { return SkISize::Make(1150, 880); }
+ SkISize onISize() override { return SkISize::Make(1150, 1280); }
void onOnceBeforeDraw() override {
fImages.push_back(make_image1());
@@ -60,7 +60,13 @@ protected:
}
canvas->translate(-bounds.fLeft + 10.f, -bounds.fTop + 10.f);
canvas->save();
- for (auto subrect : {false, true}) {
+ enum class DrawType {
+ kDrawImage,
+ kDrawImageRectStrict,
+ kDrawImageRectFast,
+ };
+ for (auto type :
+ {DrawType::kDrawImage, DrawType::kDrawImageRectStrict, DrawType::kDrawImageRectFast}) {
for (const auto& m : matrices) {
for (auto aa : {false, true}) {
paint.setAntiAlias(aa);
@@ -70,14 +76,22 @@ protected:
paint.setFilterQuality(filter);
canvas->save();
canvas->concat(m);
- if (subrect) {
- SkRect src = {img->width() / 4.f, img->height() / 4.f,
- 3.f * img->width() / 4.f, 3.f * img->height() / 4};
- SkRect dst = {0, 0,
- 3.f / 4.f * img->width(), 3.f / 4.f * img->height()};
- canvas->drawImageRect(img, src, dst, &paint);
- } else {
- canvas->drawImage(img, 0, 0, &paint);
+ SkRect src = {img->width() / 4.f, img->height() / 4.f,
+ 3.f * img->width() / 4.f, 3.f * img->height() / 4};
+ SkRect dst = {0, 0,
+ 3.f / 4.f * img->width(), 3.f / 4.f * img->height()};
+ switch (type) {
+ case DrawType::kDrawImage:
+ canvas->drawImage(img, 0, 0, &paint);
+ break;
+ case DrawType::kDrawImageRectStrict:
+ canvas->drawImageRect(img, src, dst, &paint,
+ SkCanvas::kStrict_SrcRectConstraint);
+ break;
+ case DrawType::kDrawImageRectFast:
+ canvas->drawImageRect(img, src, dst, &paint,
+ SkCanvas::kFast_SrcRectConstraint);
+ break;
}
canvas->restore();
++n;