blob: dc31623db2a542c3de97bcd96a10838138e0cfa8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
/*
* Copyright 2017 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "SkSGTransform.h"
#include "SkCanvas.h"
namespace sksg {
Transform::Transform(sk_sp<RenderNode> child, const SkMatrix& matrix)
: INHERITED(std::move(child))
, fMatrix(matrix) {}
void Transform::onRender(SkCanvas* canvas) const {
SkAutoCanvasRestore acr(canvas, !fMatrix.isIdentity());
canvas->concat(fMatrix);
this->INHERITED::onRender(canvas);
}
Node::RevalidationResult Transform::onRevalidate(InvalidationController* ic, const SkMatrix& ctm) {
SkASSERT(this->hasInval());
auto result = this->INHERITED::onRevalidate(ic, SkMatrix::Concat(ctm, fMatrix));
fMatrix.mapRect(&result.fBounds);
return result;
}
} // namespace sksg
|