Flutter Engine
 
Loading...
Searching...
No Matches
flutter::DlBlurImageFilter Class Referencefinal

#include <dl_blur_image_filter.h>

Inheritance diagram for flutter::DlBlurImageFilter:
flutter::DlImageFilter flutter::DlAttribute< DlImageFilter, DlImageFilterType >

Public Member Functions

 DlBlurImageFilter (DlScalar sigma_x, DlScalar sigma_y, DlTileMode tile_mode)
 
 DlBlurImageFilter (const DlBlurImageFilter *filter)
 
 DlBlurImageFilter (const DlBlurImageFilter &filter)
 
std::shared_ptr< DlImageFiltershared () const override
 
DlImageFilterType type () const override
 
size_t size () const override
 
const DlBlurImageFilterasBlur () const override
 
bool modifies_transparent_black () const override
 
DlRectmap_local_bounds (const DlRect &input_bounds, DlRect &output_bounds) const override
 
DlIRectmap_device_bounds (const DlIRect &input_bounds, const DlMatrix &ctm, DlIRect &output_bounds) const override
 
DlIRectget_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
 
- Public Member Functions inherited from flutter::DlImageFilter
virtual const DlDilateImageFilterasDilate () const
 
virtual const DlErodeImageFilterasErode () const
 
virtual const DlMatrixImageFilterasMatrix () const
 
virtual const DlLocalMatrixImageFilterasLocalMatrix () const
 
virtual std::shared_ptr< DlImageFiltermakeWithLocalMatrix (const DlMatrix &matrix) const
 
virtual const DlComposeImageFilterasCompose () const
 
virtual const DlColorFilterImageFilterasColorFilter () const
 
virtual const DlRuntimeEffectImageFilterasRuntimeEffectFilter () 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< DlImageFilterMake (DlScalar sigma_x, DlScalar sigma_y, DlTileMode tile_mode)
 
- Static Public Member Functions inherited from flutter::DlImageFilter
static std::shared_ptr< DlImageFilterMakeBlur (DlScalar sigma_x, DlScalar sigma_y, DlTileMode tile_mode)
 
static std::shared_ptr< DlImageFilterMakeDilate (DlScalar radius_x, DlScalar radius_y)
 
static std::shared_ptr< DlImageFilterMakeErode (DlScalar radius_x, DlScalar radius_y)
 
static std::shared_ptr< DlImageFilterMakeMatrix (const DlMatrix &matrix, DlImageSampling sampling)
 
static std::shared_ptr< DlImageFilterMakeRuntimeEffect (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< DlImageFilterMakeColorFilter (const std::shared_ptr< const DlColorFilter > &filter)
 
static std::shared_ptr< DlImageFilterMakeCompose (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 DlIRectinset_device_bounds (const DlIRect &input_bounds, DlScalar radius_x, DlScalar radius_y, const DlMatrix &ctm, DlIRect &output_bounds)
 
static DlIRectoutset_device_bounds (const DlIRect &input_bounds, DlScalar radius_x, DlScalar radius_y, const DlMatrix &ctm, DlIRect &output_bounds)
 

Detailed Description

Definition at line 14 of file dl_blur_image_filter.h.

Constructor & Destructor Documentation

◆ DlBlurImageFilter() [1/3]

flutter::DlBlurImageFilter::DlBlurImageFilter ( DlScalar  sigma_x,
DlScalar  sigma_y,
DlTileMode  tile_mode 
)
inline

Definition at line 16 of file dl_blur_image_filter.h.

17 : sigma_x_(sigma_x), sigma_y_(sigma_y), tile_mode_(tile_mode) {}

◆ DlBlurImageFilter() [2/3]

flutter::DlBlurImageFilter::DlBlurImageFilter ( const DlBlurImageFilter filter)
inlineexplicit

Definition at line 18 of file dl_blur_image_filter.h.

19 : DlBlurImageFilter(filter->sigma_x_,
20 filter->sigma_y_,
21 filter->tile_mode_) {}
DlBlurImageFilter(DlScalar sigma_x, DlScalar sigma_y, DlTileMode tile_mode)

◆ DlBlurImageFilter() [3/3]

flutter::DlBlurImageFilter::DlBlurImageFilter ( const DlBlurImageFilter filter)
inline

Definition at line 22 of file dl_blur_image_filter.h.

23 : DlBlurImageFilter(&filter) {}

Member Function Documentation

◆ asBlur()

const DlBlurImageFilter * flutter::DlBlurImageFilter::asBlur ( ) const
inlineoverridevirtual

Reimplemented from flutter::DlImageFilter.

Definition at line 36 of file dl_blur_image_filter.h.

36{ return this; }

Referenced by flutter::testing::TEST().

◆ equals_()

bool flutter::DlBlurImageFilter::equals_ ( const DlImageFilter other) const
overrideprotectedvirtual

Implements flutter::DlAttribute< DlImageFilter, DlImageFilterType >.

Definition at line 44 of file dl_blur_image_filter.cc.

44 {
45 FML_DCHECK(other.type() == DlImageFilterType::kBlur);
46 auto that = static_cast<const DlBlurImageFilter*>(&other);
47 return (DlScalarNearlyEqual(sigma_x_, that->sigma_x_) &&
48 DlScalarNearlyEqual(sigma_y_, that->sigma_y_) &&
49 tile_mode_ == that->tile_mode_);
50}
#define FML_DCHECK(condition)
Definition logging.h:122
constexpr bool DlScalarNearlyEqual(DlScalar x, DlScalar y, DlScalar tolerance=kEhCloseEnough)

References flutter::DlScalarNearlyEqual(), FML_DCHECK, flutter::kBlur, and flutter::DlAttribute< D, T >::type().

◆ get_input_device_bounds()

DlIRect * flutter::DlBlurImageFilter::get_input_device_bounds ( const DlIRect output_bounds,
const DlMatrix ctm,
DlIRect input_bounds 
) const
overridevirtual

Implements flutter::DlImageFilter.

Definition at line 36 of file dl_blur_image_filter.cc.

39 {
40 // Blurs are symmetric in terms of output-for-input and input-for-output
41 return map_device_bounds(output_bounds, ctm, input_bounds);
42}
DlIRect * map_device_bounds(const DlIRect &input_bounds, const DlMatrix &ctm, DlIRect &output_bounds) const override

References map_device_bounds().

◆ Make()

std::shared_ptr< DlImageFilter > flutter::DlBlurImageFilter::Make ( DlScalar  sigma_x,
DlScalar  sigma_y,
DlTileMode  tile_mode 
)
static

Definition at line 9 of file dl_blur_image_filter.cc.

11 {
12 if (!std::isfinite(sigma_x) || !std::isfinite(sigma_y)) {
13 return nullptr;
14 }
15 if (sigma_x < SK_ScalarNearlyZero && sigma_y < SK_ScalarNearlyZero) {
16 return nullptr;
17 }
18 sigma_x = (sigma_x < SK_ScalarNearlyZero) ? 0 : sigma_x;
19 sigma_y = (sigma_y < SK_ScalarNearlyZero) ? 0 : sigma_y;
20 return std::make_shared<DlBlurImageFilter>(sigma_x, sigma_y, tile_mode);
21}

References sigma_x(), sigma_y(), and tile_mode().

Referenced by flutter::ImageFilter::filter(), flutter::ImageFilter::initBlur(), flutter::DlImageFilter::MakeBlur(), impeller::interop::ImageFilter::MakeBlur(), and flutter::testing::TEST().

◆ map_device_bounds()

DlIRect * flutter::DlBlurImageFilter::map_device_bounds ( const DlIRect input_bounds,
const DlMatrix ctm,
DlIRect output_bounds 
) const
overridevirtual

Implements flutter::DlImageFilter.

Definition at line 29 of file dl_blur_image_filter.cc.

31 {
32 return outset_device_bounds(input_bounds, sigma_x_ * 3.0f, sigma_y_ * 3.0f,
33 ctm, output_bounds);
34}
static DlIRect * outset_device_bounds(const DlIRect &input_bounds, DlScalar radius_x, DlScalar radius_y, const DlMatrix &ctm, DlIRect &output_bounds)

References flutter::DlImageFilter::outset_device_bounds().

Referenced by get_input_device_bounds().

◆ map_local_bounds()

DlRect * flutter::DlBlurImageFilter::map_local_bounds ( const DlRect input_bounds,
DlRect output_bounds 
) const
overridevirtual

Implements flutter::DlImageFilter.

Definition at line 23 of file dl_blur_image_filter.cc.

24 {
25 output_bounds = input_bounds.Expand(sigma_x_ * 3.0f, sigma_y_ * 3.0f);
26 return &output_bounds;
27}

References impeller::TRect< T >::Expand().

◆ modifies_transparent_black()

bool flutter::DlBlurImageFilter::modifies_transparent_black ( ) const
inlineoverridevirtual

Implements flutter::DlImageFilter.

Definition at line 38 of file dl_blur_image_filter.h.

38{ return false; }

◆ shared()

std::shared_ptr< DlImageFilter > flutter::DlBlurImageFilter::shared ( ) const
inlineoverridevirtual

Implements flutter::DlAttribute< DlImageFilter, DlImageFilterType >.

Definition at line 29 of file dl_blur_image_filter.h.

29 {
30 return std::make_shared<DlBlurImageFilter>(this);
31 }

Referenced by flutter::testing::TEST(), and impeller::testing::TEST_P().

◆ sigma_x()

DlScalar flutter::DlBlurImageFilter::sigma_x ( ) const
inline

◆ sigma_y()

DlScalar flutter::DlBlurImageFilter::sigma_y ( ) const
inline

◆ size()

size_t flutter::DlBlurImageFilter::size ( ) const
inlineoverridevirtual

Implements flutter::DlAttribute< DlImageFilter, DlImageFilterType >.

Definition at line 34 of file dl_blur_image_filter.h.

34{ return sizeof(*this); }

◆ tile_mode()

◆ type()

DlImageFilterType flutter::DlBlurImageFilter::type ( ) const
inlineoverridevirtual

The documentation for this class was generated from the following files: