5#ifndef FLUTTER_DISPLAY_LIST_EFFECTS_DL_IMAGE_FILTER_H_
6#define FLUTTER_DISPLAY_LIST_EFFECTS_DL_IMAGE_FILTER_H_
37class DlBlurImageFilter;
38class DlDilateImageFilter;
39class DlErodeImageFilter;
40class DlMatrixImageFilter;
41class DlRuntimeEffectImageFilter;
42class DlColorFilterImageFilter;
43class DlComposeImageFilter;
44class DlLocalMatrixImageFilter;
68 sk_sp<DlRuntimeEffect> runtime_effect,
69 std::vector<std::shared_ptr<DlColorSource>> samplers,
70 std::shared_ptr<std::vector<uint8_t>> uniform_data);
73 const std::shared_ptr<const DlColorFilter>& filter);
76 const std::shared_ptr<DlImageFilter>& outer,
77 const std::shared_ptr<DlImageFilter>& inner);
133 DlRect& output_bounds)
const = 0;
148 DlIRect& output_bounds)
const = 0;
161 DlIRect& input_bounds)
const = 0;
virtual const DlLocalMatrixImageFilter * asLocalMatrix() const
static std::shared_ptr< DlImageFilter > MakeDilate(DlScalar radius_x, DlScalar radius_y)
virtual std::shared_ptr< DlImageFilter > makeWithLocalMatrix(const DlMatrix &matrix) const
virtual DlIRect * map_device_bounds(const DlIRect &input_bounds, const DlMatrix &ctm, DlIRect &output_bounds) const =0
virtual const DlColorFilterImageFilter * asColorFilter() const
static std::shared_ptr< DlImageFilter > MakeBlur(DlScalar sigma_x, DlScalar sigma_y, DlTileMode tile_mode)
static DlIRect * outset_device_bounds(const DlIRect &input_bounds, DlScalar radius_x, DlScalar radius_y, const DlMatrix &ctm, DlIRect &output_bounds)
static std::shared_ptr< DlImageFilter > MakeRuntimeEffect(sk_sp< DlRuntimeEffect > runtime_effect, std::vector< std::shared_ptr< DlColorSource > > samplers, std::shared_ptr< std::vector< uint8_t > > uniform_data)
static std::shared_ptr< DlImageFilter > MakeColorFilter(const std::shared_ptr< const DlColorFilter > &filter)
virtual DlRect * map_local_bounds(const DlRect &input_bounds, DlRect &output_bounds) const =0
static DlVector2 map_vectors_affine(const DlMatrix &ctm, DlScalar x, DlScalar y)
virtual const DlRuntimeEffectImageFilter * asRuntimeEffectFilter() const
virtual const DlMatrixImageFilter * asMatrix() const
virtual bool modifies_transparent_black() const =0
static DlIRect * inset_device_bounds(const DlIRect &input_bounds, DlScalar radius_x, DlScalar radius_y, const DlMatrix &ctm, DlIRect &output_bounds)
virtual const DlComposeImageFilter * asCompose() const
static std::shared_ptr< DlImageFilter > MakeMatrix(const DlMatrix &matrix, DlImageSampling sampling)
static std::shared_ptr< DlImageFilter > MakeCompose(const std::shared_ptr< DlImageFilter > &outer, const std::shared_ptr< DlImageFilter > &inner)
virtual MatrixCapability matrix_capability() const
virtual DlIRect * get_input_device_bounds(const DlIRect &output_bounds, const DlMatrix &ctm, DlIRect &input_bounds) const =0
virtual const DlBlurImageFilter * asBlur() const
static std::shared_ptr< DlImageFilter > MakeErode(DlScalar radius_x, DlScalar radius_y)
virtual const DlDilateImageFilter * asDilate() const
virtual const DlErodeImageFilter * asErode() const
impeller::Scalar DlScalar
A 4x4 matrix using column-major storage.