8#ifndef SkImageFilter_Base_DEFINED
9#define SkImageFilter_Base_DEFINED
143 static std::pair<sk_sp<SkImageFilter>, std::optional<SkRect>>
159 std::optional<SkRect>
cropRect()
const {
return fCropRect; }
168 std::optional<SkRect> fCropRect;
175 std::optional<bool> usesSrc = {});
207 static void PurgeCache();
226 return MatrixCapability::kScaleTranslate;
325#define SK_IMAGEFILTER_UNFLATTEN_COMMON(localVar, expectedCount) \
328 if (!localVar.unflatten(buffer, expectedCount)) { \
void SkRegisterMorphologyImageFilterFlattenables()
void SkRegisterCropImageFilterFlattenable()
void SkRegisterRuntimeImageFilterFlattenable()
void SkRegisterMagnifierImageFilterFlattenable()
void SkRegisterImageImageFilterFlattenable()
void SkRegisterLegacyDropShadowImageFilterFlattenable()
static SkImageFilter_Base * as_IFB(SkImageFilter *filter)
void SkRegisterColorFilterImageFilterFlattenable()
void SkRegisterComposeImageFilterFlattenable()
void SkRegisterBlurImageFilterFlattenable()
void SkRegisterMatrixConvolutionImageFilterFlattenable()
void SkRegisterLightingImageFilterFlattenables()
void SkRegisterDisplacementMapImageFilterFlattenable()
void SkRegisterMatrixTransformImageFilterFlattenable()
void SkRegisterPictureImageFilterFlattenable()
void SkRegisterMergeImageFilterFlattenable()
void SkRegisterBlendImageFilterFlattenable()
void SkRegisterShaderImageFilterFlattenable()
sk_sp< SkImageFilter > * inputs()
bool unflatten(SkReadBuffer &, int expectedInputs)
sk_sp< SkImageFilter > getInput(int index)
std::optional< SkRect > cropRect() const
virtual bool onIsColorFilterNode(SkColorFilter **) const
~SkImageFilter_Base() override
virtual skif::LayerSpace< SkIRect > onGetInputLayerBounds(const skif::Mapping &mapping, const skif::LayerSpace< SkIRect > &desiredOutput, std::optional< skif::LayerSpace< SkIRect > > contentBounds) const =0
std::optional< skif::DeviceSpace< SkIRect > > getOutputBounds(const skif::Mapping &mapping, const skif::ParameterSpace< SkRect > &contentBounds) const
friend class SkImageFilter
virtual bool onAffectsTransparentBlack() const
static SkFlattenable::Type GetFlattenableType()
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
virtual bool ignoreInputsAffectsTransparentBlack() const
virtual std::optional< skif::LayerSpace< SkIRect > > onGetOutputLayerBounds(const skif::Mapping &mapping, std::optional< skif::LayerSpace< SkIRect > > contentBounds) const =0
virtual skif::FilterResult onFilterImage(const skif::Context &context) const =0
skif::LayerSpace< SkIRect > getInputBounds(const skif::Mapping &mapping, const skif::DeviceSpace< SkIRect > &desiredOutput, std::optional< skif::ParameterSpace< SkRect > > knownContentBounds) const
skif::FilterResult getChildOutput(int index, const skif::Context &ctx) const
sk_sp< SkImage > makeImageWithFilter(sk_sp< skif::Backend > backend, sk_sp< SkImage > src, const SkIRect &subset, const SkIRect &clipBounds, SkIRect *outSubset, SkIPoint *offset) const
SkFlattenable::Type getFlattenableType() const override
skif::FilterResult filterImage(const skif::Context &context) const
uint32_t uniqueID() const
bool affectsTransparentBlack() const
std::optional< skif::LayerSpace< SkIRect > > getChildOutputLayerBounds(int index, const skif::Mapping &mapping, std::optional< skif::LayerSpace< SkIRect > > contentBounds) const
MatrixCapability getCTMCapability() const
static std::pair< sk_sp< SkImageFilter >, std::optional< SkRect > > Unflatten(SkReadBuffer &buffer)
virtual MatrixCapability onGetCTMCapability() const
friend class SkImageFilter_Base
static const uint8_t buffer[]