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

#include <dl_compose_image_filter.h>

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

Public Member Functions

 DlComposeImageFilter (const std::shared_ptr< DlImageFilter > &outer, const std::shared_ptr< DlImageFilter > &inner)
 
 DlComposeImageFilter (const DlImageFilter *outer, const DlImageFilter *inner)
 
 DlComposeImageFilter (const DlImageFilter &outer, const DlImageFilter &inner)
 
 DlComposeImageFilter (const DlComposeImageFilter *filter)
 
 DlComposeImageFilter (const DlComposeImageFilter &filter)
 
std::shared_ptr< DlImageFiltershared () const override
 
DlImageFilterType type () const override
 
size_t size () const override
 
std::shared_ptr< DlImageFilterouter () const
 
std::shared_ptr< DlImageFilterinner () const
 
const DlComposeImageFilterasCompose () 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
 
MatrixCapability matrix_capability () const override
 
- Public Member Functions inherited from flutter::DlImageFilter
virtual const DlBlurImageFilterasBlur () const
 
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 DlColorFilterImageFilterasColorFilter () const
 
virtual const DlRuntimeEffectImageFilterasRuntimeEffectFilter () 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 (const std::shared_ptr< DlImageFilter > &outer, const std::shared_ptr< DlImageFilter > &inner)
 
- 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 12 of file dl_compose_image_filter.h.

Constructor & Destructor Documentation

◆ DlComposeImageFilter() [1/5]

flutter::DlComposeImageFilter::DlComposeImageFilter ( const std::shared_ptr< DlImageFilter > &  outer,
const std::shared_ptr< DlImageFilter > &  inner 
)
inline

Definition at line 14 of file dl_compose_image_filter.h.

16 : outer_(outer), inner_(inner) {}
std::shared_ptr< DlImageFilter > inner() const
std::shared_ptr< DlImageFilter > outer() const

◆ DlComposeImageFilter() [2/5]

flutter::DlComposeImageFilter::DlComposeImageFilter ( const DlImageFilter outer,
const DlImageFilter inner 
)
inline

Definition at line 17 of file dl_compose_image_filter.h.

18 : outer_(outer->shared()), inner_(inner->shared()) {}

◆ DlComposeImageFilter() [3/5]

flutter::DlComposeImageFilter::DlComposeImageFilter ( const DlImageFilter outer,
const DlImageFilter inner 
)
inline

Definition at line 19 of file dl_compose_image_filter.h.

DlComposeImageFilter(const std::shared_ptr< DlImageFilter > &outer, const std::shared_ptr< DlImageFilter > &inner)

◆ DlComposeImageFilter() [4/5]

flutter::DlComposeImageFilter::DlComposeImageFilter ( const DlComposeImageFilter filter)
inlineexplicit

Definition at line 21 of file dl_compose_image_filter.h.

22 : DlComposeImageFilter(filter->outer_, filter->inner_) {}

◆ DlComposeImageFilter() [5/5]

flutter::DlComposeImageFilter::DlComposeImageFilter ( const DlComposeImageFilter filter)
inline

Definition at line 23 of file dl_compose_image_filter.h.

24 : DlComposeImageFilter(&filter) {}

Member Function Documentation

◆ asCompose()

const DlComposeImageFilter * flutter::DlComposeImageFilter::asCompose ( ) const
inlineoverridevirtual

Reimplemented from flutter::DlImageFilter.

Definition at line 42 of file dl_compose_image_filter.h.

42{ return this; }

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

◆ equals_()

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

Implements flutter::DlAttribute< DlImageFilter, DlImageFilterType >.

Definition at line 101 of file dl_compose_image_filter.cc.

101 {
103 auto that = static_cast<const DlComposeImageFilter*>(&other);
104 return (Equals(outer_, that->outer_) && Equals(inner_, that->inner_));
105}
#define FML_DCHECK(condition)
Definition logging.h:122
bool Equals(const T *a, const U *b)

References flutter::Equals(), FML_DCHECK, flutter::kCompose, and flutter::DlAttribute< D, T >::type().

◆ get_input_device_bounds()

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

Implements flutter::DlImageFilter.

Definition at line 74 of file dl_compose_image_filter.cc.

77 {
78 DlIRect cur_bounds = output_bounds;
79 DlIRect* ret = &input_bounds;
80 // We set this result in case neither filter is present.
81 input_bounds = output_bounds;
82 if (outer_) {
83 if (!outer_->get_input_device_bounds(cur_bounds, ctm, input_bounds)) {
84 ret = nullptr;
85 }
86 cur_bounds = input_bounds;
87 }
88 if (inner_) {
89 if (!inner_->get_input_device_bounds(cur_bounds, ctm, input_bounds)) {
90 ret = nullptr;
91 }
92 }
93 return ret;
94}
impeller::IRect32 DlIRect

◆ inner()

std::shared_ptr< DlImageFilter > flutter::DlComposeImageFilter::inner ( ) const
inline

◆ Make()

std::shared_ptr< DlImageFilter > flutter::DlComposeImageFilter::Make ( const std::shared_ptr< DlImageFilter > &  outer,
const std::shared_ptr< DlImageFilter > &  inner 
)
static

Definition at line 11 of file dl_compose_image_filter.cc.

13 {
14 if (!outer) {
15 return inner;
16 }
17 if (!inner) {
18 return outer;
19 }
20 return std::make_shared<DlComposeImageFilter>(outer, inner);
21}

References inner(), and outer().

Referenced by flutter::ImageFilter::initComposeFilter(), impeller::interop::ImageFilter::MakeCompose(), and flutter::DlImageFilter::MakeCompose().

◆ map_device_bounds()

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

Implements flutter::DlImageFilter.

Definition at line 53 of file dl_compose_image_filter.cc.

55 {
56 DlIRect cur_bounds = input_bounds;
57 DlIRect* ret = &output_bounds;
58 // We set this result in case neither filter is present.
59 output_bounds = input_bounds;
60 if (inner_) {
61 if (!inner_->map_device_bounds(cur_bounds, ctm, output_bounds)) {
62 ret = nullptr;
63 }
64 cur_bounds = output_bounds;
65 }
66 if (outer_) {
67 if (!outer_->map_device_bounds(cur_bounds, ctm, output_bounds)) {
68 ret = nullptr;
69 }
70 }
71 return ret;
72}

◆ map_local_bounds()

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

Implements flutter::DlImageFilter.

Definition at line 33 of file dl_compose_image_filter.cc.

34 {
35 DlRect cur_bounds = input_bounds;
36 DlRect* ret = &output_bounds;
37 // We set this result in case neither filter is present.
38 output_bounds = input_bounds;
39 if (inner_) {
40 if (!inner_->map_local_bounds(cur_bounds, output_bounds)) {
41 ret = nullptr;
42 }
43 cur_bounds = output_bounds;
44 }
45 if (outer_) {
46 if (!outer_->map_local_bounds(cur_bounds, output_bounds)) {
47 ret = nullptr;
48 }
49 }
50 return ret;
51}
impeller::Rect DlRect

◆ matrix_capability()

DlImageFilter::MatrixCapability flutter::DlComposeImageFilter::matrix_capability ( ) const
overridevirtual

Reimplemented from flutter::DlImageFilter.

Definition at line 96 of file dl_compose_image_filter.cc.

97 {
98 return std::min(outer_->matrix_capability(), inner_->matrix_capability());
99}

◆ modifies_transparent_black()

bool flutter::DlComposeImageFilter::modifies_transparent_black ( ) const
overridevirtual

Implements flutter::DlImageFilter.

Definition at line 23 of file dl_compose_image_filter.cc.

23 {
24 if (inner_ && inner_->modifies_transparent_black()) {
25 return true;
26 }
27 if (outer_ && outer_->modifies_transparent_black()) {
28 return true;
29 }
30 return false;
31}

◆ outer()

std::shared_ptr< DlImageFilter > flutter::DlComposeImageFilter::outer ( ) const
inline

◆ shared()

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

Implements flutter::DlAttribute< DlImageFilter, DlImageFilterType >.

Definition at line 30 of file dl_compose_image_filter.h.

30 {
31 return std::make_shared<DlComposeImageFilter>(this);
32 }

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

◆ size()

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

Implements flutter::DlAttribute< DlImageFilter, DlImageFilterType >.

Definition at line 37 of file dl_compose_image_filter.h.

37{ return sizeof(*this); }

◆ type()

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

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