aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorFlorin Malita <fmalita@chromium.org>2018-11-06 11:08:07 -0500
committerSkia Commit-Bot <skia-commit-bot@chromium.org>2018-11-06 17:24:58 +0000
commit5d3deb7301b1f41764b9959d44c7d6d6312d74a4 (patch)
treed040b6b0c6881f91bfc735d0bc474f1e1ea29f6c /modules
parentfe24b83bf745363c4f6bd3c22e29be4ad890cbcb (diff)
downloadskqp-5d3deb7301b1f41764b9959d44c7d6d6312d74a4.tar.gz
[skottie] Preserve image aspect ratio
When the intrinsic image dimensions don't match the declared asset size, use an aspect-preserving matrix for scaling. Bug: skia: TBR= Change-Id: Ie361f464fdbc2c32cb898c9f97103521162b46a7 Reviewed-on: https://skia-review.googlesource.com/c/168274 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org> Auto-Submit: Florin Malita <fmalita@chromium.org>
Diffstat (limited to 'modules')
-rw-r--r--modules/skottie/src/SkottieLayer.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/modules/skottie/src/SkottieLayer.cpp b/modules/skottie/src/SkottieLayer.cpp
index 98ea02cea0..2786ed5705 100644
--- a/modules/skottie/src/SkottieLayer.cpp
+++ b/modules/skottie/src/SkottieLayer.cpp
@@ -373,8 +373,9 @@ sk_sp<sksg::RenderNode> AnimationBuilder::attachImageAsset(const skjson::ObjectV
}
return sksg::Transform::Make(std::move(image_node),
- SkMatrix::MakeScale(static_cast<float>(asset_size.width()) / image->width(),
- static_cast<float>(asset_size.height()) / image->height()));
+ SkMatrix::MakeRectToRect(SkRect::Make(image->bounds()),
+ SkRect::Make(asset_size),
+ SkMatrix::kCenter_ScaleToFit));
}
sk_sp<sksg::RenderNode> AnimationBuilder::attachImageLayer(const skjson::ObjectValue& jlayer,