#include <dl_blur_image_filter.h>
Public Member Functions | |
| DlBlurImageFilter (DlScalar sigma_x, DlScalar sigma_y, DlTileMode tile_mode, std::optional< DlRect > bounds=std::nullopt) | |
| Creates an ImageFilter that applies a Gaussian blur to its input. | |
| DlBlurImageFilter (const DlBlurImageFilter *filter) | |
| DlBlurImageFilter (const DlBlurImageFilter &filter) | |
| std::shared_ptr< DlImageFilter > | shared () const override |
| DlImageFilterType | type () const override |
| size_t | size () const override |
| const DlBlurImageFilter * | asBlur () const override |
| bool | modifies_transparent_black () const override |
| DlRect * | map_local_bounds (const DlRect &input_bounds, DlRect &output_bounds) const override |
| DlIRect * | map_device_bounds (const DlIRect &input_bounds, const DlMatrix &ctm, DlIRect &output_bounds) const override |
| DlIRect * | get_input_device_bounds (const DlIRect &output_bounds, const DlMatrix &ctm, DlIRect &input_bounds) const override |
| DlScalar | sigma_x () const |
| DlScalar | sigma_y () const |
| DlTileMode | tile_mode () const |
| std::optional< DlRect > | bounds () const |
Public Member Functions inherited from flutter::DlImageFilter | |
| virtual const DlDilateImageFilter * | asDilate () const |
| virtual const DlErodeImageFilter * | asErode () const |
| virtual const DlMatrixImageFilter * | asMatrix () const |
| virtual const DlLocalMatrixImageFilter * | asLocalMatrix () const |
| virtual std::shared_ptr< DlImageFilter > | makeWithLocalMatrix (const DlMatrix &matrix) const |
| virtual const DlComposeImageFilter * | asCompose () const |
| virtual const DlColorFilterImageFilter * | asColorFilter () const |
| virtual const DlRuntimeEffectImageFilter * | asRuntimeEffectFilter () const |
| virtual MatrixCapability | matrix_capability () const |
Public Member Functions inherited from flutter::DlAttribute< DlImageFilter, DlImageFilterType > | |
| bool | operator== (DlImageFilter const &other) const |
| bool | operator!= (DlImageFilter const &other) const |
| virtual | ~DlAttribute ()=default |
Static Public Member Functions | |
| static std::shared_ptr< DlImageFilter > | Make (DlScalar sigma_x, DlScalar sigma_y, DlTileMode tile_mode, std::optional< DlRect > bounds=std::nullopt) |
Static Public Member Functions inherited from flutter::DlImageFilter | |
| static std::shared_ptr< DlImageFilter > | MakeBlur (DlScalar sigma_x, DlScalar sigma_y, DlTileMode tile_mode) |
| static std::shared_ptr< DlImageFilter > | MakeDilate (DlScalar radius_x, DlScalar radius_y) |
| static std::shared_ptr< DlImageFilter > | MakeErode (DlScalar radius_x, DlScalar radius_y) |
| static std::shared_ptr< DlImageFilter > | MakeMatrix (const DlMatrix &matrix, DlImageSampling sampling) |
| 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) |
| static std::shared_ptr< DlImageFilter > | MakeCompose (const std::shared_ptr< DlImageFilter > &outer, const std::shared_ptr< DlImageFilter > &inner) |
Protected Member Functions | |
| bool | equals_ (const DlImageFilter &other) const override |
Additional Inherited Members | |
Public Types inherited from flutter::DlImageFilter | |
| enum class | MatrixCapability { kTranslate , kScaleTranslate , kComplex } |
Static Protected Member Functions inherited from flutter::DlImageFilter | |
| static DlVector2 | map_vectors_affine (const DlMatrix &ctm, DlScalar x, DlScalar y) |
| static DlIRect * | inset_device_bounds (const DlIRect &input_bounds, DlScalar radius_x, DlScalar radius_y, const DlMatrix &ctm, DlIRect &output_bounds) |
| static DlIRect * | outset_device_bounds (const DlIRect &input_bounds, DlScalar radius_x, DlScalar radius_y, const DlMatrix &ctm, DlIRect &output_bounds) |
Definition at line 14 of file dl_blur_image_filter.h.
|
inline |
Creates an ImageFilter that applies a Gaussian blur to its input.
| sigma_x | The standard deviation of the Gaussian kernel in the X direction. |
| sigma_y | The standard deviation of the Gaussian kernel in the Y direction. |
| bounds | An optional rectangle that enables "bounded blur" mode. |
| tile_mode | Defines how to sample from areas outside the bounds of the input texture. |
If bounds is std::nullopt, a standard Gaussian blur is applied and to the entire surface.
If bounds is not std::nullopt, the filter performs a "bounded blur": the image filter substitutes transparent black for any sample it reads from outside the defined bounding rectangle. The final weighted sum is then divided by the total weight of the non-transparent samples (the effective alpha), resulting in opaque output.
The bounded mode prevents color bleeding from content adjacent to the bounds into the blurred area, and is typically used when the blur must be strictly contained within a clipped region, such as for iOS-style frosted glass effects.
The bounds rectangle is specified in the canvas's current coordinate space and is affected by the current transform; consequently, the bounds may not be axis-aligned in the final canvas coordinates.
Definition at line 45 of file dl_blur_image_filter.h.
|
inlineexplicit |
Definition at line 53 of file dl_blur_image_filter.h.
|
inline |
Definition at line 58 of file dl_blur_image_filter.h.
|
inlineoverridevirtual |
Reimplemented from flutter::DlImageFilter.
Definition at line 74 of file dl_blur_image_filter.h.
Referenced by flutter::testing::TEST().
|
inline |
|
overrideprotectedvirtual |
Implements flutter::DlAttribute< DlImageFilter, DlImageFilterType >.
Definition at line 47 of file dl_blur_image_filter.cc.
References flutter::DlScalarNearlyEqual(), FML_DCHECK, flutter::kBlur, and flutter::DlAttribute< D, T >::type().
|
overridevirtual |
Implements flutter::DlImageFilter.
Definition at line 39 of file dl_blur_image_filter.cc.
References map_device_bounds().
|
static |
Definition at line 9 of file dl_blur_image_filter.cc.
References bounds(), sigma_x(), sigma_y(), and tile_mode().
Referenced by flutter::ImageFilter::filter(), flutter::ImageFilter::initBlur(), flutter::DlImageFilter::MakeBlur(), impeller::interop::ImageFilter::MakeBlur(), flutter::testing::TEST(), and impeller::testing::TEST_P().
|
overridevirtual |
Implements flutter::DlImageFilter.
Definition at line 32 of file dl_blur_image_filter.cc.
References flutter::DlImageFilter::outset_device_bounds().
Referenced by get_input_device_bounds().
|
overridevirtual |
Implements flutter::DlImageFilter.
Definition at line 26 of file dl_blur_image_filter.cc.
References impeller::TRect< T >::Expand().
|
inlineoverridevirtual |
Implements flutter::DlImageFilter.
Definition at line 76 of file dl_blur_image_filter.h.
|
inlineoverridevirtual |
Implements flutter::DlAttribute< DlImageFilter, DlImageFilterType >.
Definition at line 67 of file dl_blur_image_filter.h.
Referenced by flutter::testing::TEST(), and impeller::testing::TEST_P().
|
inline |
Definition at line 89 of file dl_blur_image_filter.h.
Referenced by flutter::ImageFilter::filter(), Make(), flutter::testing::DisplayListStreamDispatcher::out(), flutter::testing::TEST(), and flutter::ToSk().
|
inline |
Definition at line 90 of file dl_blur_image_filter.h.
Referenced by flutter::ImageFilter::filter(), Make(), flutter::testing::DisplayListStreamDispatcher::out(), flutter::testing::TEST(), and flutter::ToSk().
|
inlineoverridevirtual |
Implements flutter::DlAttribute< DlImageFilter, DlImageFilterType >.
Definition at line 72 of file dl_blur_image_filter.h.
|
inline |
Definition at line 91 of file dl_blur_image_filter.h.
Referenced by flutter::ImageFilter::filter(), Make(), flutter::testing::DisplayListStreamDispatcher::out(), flutter::DlSkCanvasDispatcher::saveLayer(), flutter::DlSkCanvasAdapter::SaveLayer(), flutter::testing::TEST(), and flutter::ToSk().
|
inlineoverridevirtual |
Implements flutter::DlAttribute< DlImageFilter, DlImageFilterType >.
Definition at line 71 of file dl_blur_image_filter.h.
References flutter::kBlur.