24 if ((inputCapability == MatrixCapability::kTranslate && !localMatrix.
isTranslate()) ||
25 (inputCapability == MatrixCapability::kScaleTranslate && !localMatrix.
isScaleTranslate())) {
31 if (!localMatrix.
invert(&invLocal)) {
47 buffer.writeMatrix(fLocalMatrix);
72 desiredOutput, contentBounds);
static SkImageFilter_Base * as_IFB(SkImageFilter *filter)
#define SK_IMAGEFILTER_UNFLATTEN_COMMON(localVar, expectedCount)
skif::LayerSpace< SkIRect > getChildInputLayerBounds(int index, const skif::Mapping &mapping, const skif::LayerSpace< SkIRect > &desiredOutput, std::optional< skif::LayerSpace< SkIRect > > contentBounds) const
void flatten(SkWriteBuffer &) const override
skif::FilterResult getChildOutput(int index, const skif::Context &ctx) const
std::optional< skif::LayerSpace< SkIRect > > getChildOutputLayerBounds(int index, const skif::Mapping &mapping, std::optional< skif::LayerSpace< SkIRect > > contentBounds) const
MatrixCapability getCTMCapability() const
const SkImageFilter * getInput(int i) const
skif::LayerSpace< SkIRect > onGetInputLayerBounds(const skif::Mapping &, const skif::LayerSpace< SkIRect > &desiredOutput, std::optional< skif::LayerSpace< SkIRect > > contentBounds) const override
std::optional< skif::LayerSpace< SkIRect > > onGetOutputLayerBounds(const skif::Mapping &, std::optional< skif::LayerSpace< SkIRect > > contentBounds) const override
skif::FilterResult onFilterImage(const skif::Context &ctx) const override
void flatten(SkWriteBuffer &) const override
static sk_sp< SkImageFilter > Make(const SkMatrix &localMatrix, sk_sp< SkImageFilter > input)
SkRect computeFastBounds(const SkRect &) const override
bool invert(SkMatrix *inverse) const
bool isScaleTranslate() const
bool mapRect(SkRect *dst, const SkRect &src, SkApplyPerspectiveClip pc=SkApplyPerspectiveClip::kYes) const
const Mapping & mapping() const
Context withNewMapping(const Mapping &mapping) const
void concatLocal(const SkMatrix &local)
static const uint8_t buffer[]