[skotty] Clip/scale/center animations in Viewer

Animations have explicit bounds.  Updated Viewer to map the animation
to its full viewport.

TBR=
Change-Id: I5a016cace8ae97e9b4f0b93261fcfb4993ea2307
Reviewed-on: https://skia-review.googlesource.com/90263
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
This commit is contained in:
Florin Malita 2018-01-02 14:37:37 -05:00 committed by Skia Commit-Bot
parent 20aaaeebc1
commit aa4dc62139

View File

@ -8,6 +8,7 @@
#include "SkottySlide.h"
#include "SkAnimTimer.h"
#include "SkCanvas.h"
#include "Skotty.h"
#include "SkStream.h"
@ -42,6 +43,12 @@ SkISize SkottySlide::getDimensions() const {
void SkottySlide::draw(SkCanvas* canvas) {
if (fAnimation) {
SkAutoCanvasRestore acr(canvas, true);
const auto animationBounds = SkRect::Make(fAnimation->size().toCeil());
canvas->concat(SkMatrix::MakeRectToRect(animationBounds,
SkRect::Make(canvas->imageInfo().bounds()),
SkMatrix::kCenter_ScaleToFit));
canvas->clipRect(animationBounds);
fAnimation->render(canvas);
}
}