41 : fA(
std::move(
a)), fB(
std::move(
b)) {
45 this->observeInval(fA);
46 this->observeInval(fB);
50 this->unobserveInval(fA);
51 this->unobserveInval(fB);
55 SkRect onRevalidate(InvalidationController* ic,
const SkMatrix& ctm)
override {
56 fA->revalidate(ic, ctm);
57 fB->revalidate(ic, ctm);
59 fComposed.setConcat(TransformPriv::As<T>(fA),
60 TransformPriv::As<T>(fB));
68 return AsSkMatrix(fComposed);
71 SkM44 asM44()
const override {
73 return AsSkM44(fComposed);
92 this->observeInval(fT);
96 this->unobserveInval(fT);
100 SkRect onRevalidate(InvalidationController* ic,
const SkMatrix& ctm)
override {
101 fT->revalidate(ic, ctm);
103 if (!TransformPriv::As<T>(fT).
invert(&fInverted)) {
104 fInverted.setIdentity();
112 SkMatrix asMatrix()
const override {
114 return AsSkMatrix(fInverted);
117 SkM44 asM44()
const override {
119 return AsSkM44(fInverted);
182 canvas->
concat(TransformPriv::As<SkM44>(fTransform));
188 const auto p4 = TransformPriv::As<SkM44>(fTransform).map(
p.fX,
p.fY, 0, 0);
197 fTransform->revalidate(ic, ctm);
200 const auto m = TransformPriv::As<SkMatrix>(fTransform);
#define INHERITED(method,...)
void concat(const SkMatrix &matrix)
static SkMatrix Concat(const SkMatrix &a, const SkMatrix &b)
const RenderNode * onNodeAt(const SkPoint &) const override
void onRender(SkCanvas *, const RenderContext *) const override
SkRect onRevalidate(InvalidationController *, const SkMatrix &) override
SkMatrix asMatrix() const override
void observeInval(const sk_sp< Node > &)
void unobserveInval(const sk_sp< Node > &)
const SkRect & bounds() const
static const char * Concat(const char *a, const char *b)
skgpu::graphite::Transform Transform
static SkColor4f transform(SkColor4f c, SkColorSpace *src, SkColorSpace *dst)
static constexpr SkRect MakeEmpty()