Flutter Engine
 
Loading...
Searching...
No Matches
dl_compose_image_filter.h
Go to the documentation of this file.
1// Copyright 2013 The Flutter Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef FLUTTER_DISPLAY_LIST_EFFECTS_IMAGE_FILTERS_DL_COMPOSE_IMAGE_FILTER_H_
6#define FLUTTER_DISPLAY_LIST_EFFECTS_IMAGE_FILTERS_DL_COMPOSE_IMAGE_FILTER_H_
7
9
10namespace flutter {
11
12class DlComposeImageFilter final : public DlImageFilter {
13 public:
14 DlComposeImageFilter(const std::shared_ptr<DlImageFilter>& outer,
15 const std::shared_ptr<DlImageFilter>& inner)
16 : outer_(outer), inner_(inner) {}
18 : outer_(outer->shared()), inner_(inner->shared()) {}
22 : DlComposeImageFilter(filter->outer_, filter->inner_) {}
25
26 static std::shared_ptr<DlImageFilter> Make(
27 const std::shared_ptr<DlImageFilter>& outer,
28 const std::shared_ptr<DlImageFilter>& inner);
29
30 std::shared_ptr<DlImageFilter> shared() const override {
31 return std::make_shared<DlComposeImageFilter>(this);
32 }
33
34 DlImageFilterType type() const override {
36 }
37 size_t size() const override { return sizeof(*this); }
38
39 std::shared_ptr<DlImageFilter> outer() const { return outer_; }
40 std::shared_ptr<DlImageFilter> inner() const { return inner_; }
41
42 const DlComposeImageFilter* asCompose() const override { return this; }
43
44 bool modifies_transparent_black() const override;
45
46 DlRect* map_local_bounds(const DlRect& input_bounds,
47 DlRect& output_bounds) const override;
48
49 DlIRect* map_device_bounds(const DlIRect& input_bounds,
50 const DlMatrix& ctm,
51 DlIRect& output_bounds) const override;
52
53 DlIRect* get_input_device_bounds(const DlIRect& output_bounds,
54 const DlMatrix& ctm,
55 DlIRect& input_bounds) const override;
56
57 MatrixCapability matrix_capability() const override;
58
59 protected:
60 bool equals_(const DlImageFilter& other) const override;
61
62 private:
63 const std::shared_ptr<DlImageFilter> outer_;
64 const std::shared_ptr<DlImageFilter> inner_;
65};
66
67} // namespace flutter
68
69#endif // FLUTTER_DISPLAY_LIST_EFFECTS_IMAGE_FILTERS_DL_COMPOSE_IMAGE_FILTER_H_
DlComposeImageFilter(const DlComposeImageFilter *filter)
DlComposeImageFilter(const DlComposeImageFilter &filter)
DlComposeImageFilter(const DlImageFilter *outer, const DlImageFilter *inner)
std::shared_ptr< DlImageFilter > shared() const override
std::shared_ptr< DlImageFilter > inner() const
DlComposeImageFilter(const DlImageFilter &outer, const DlImageFilter &inner)
std::shared_ptr< DlImageFilter > outer() const
DlComposeImageFilter(const std::shared_ptr< DlImageFilter > &outer, const std::shared_ptr< DlImageFilter > &inner)
const DlComposeImageFilter * asCompose() const override
DlIRect * get_input_device_bounds(const DlIRect &output_bounds, const DlMatrix &ctm, DlIRect &input_bounds) const override
DlIRect * map_device_bounds(const DlIRect &input_bounds, const DlMatrix &ctm, DlIRect &output_bounds) const override
MatrixCapability matrix_capability() const override
DlRect * map_local_bounds(const DlRect &input_bounds, DlRect &output_bounds) const override
bool modifies_transparent_black() const override
bool equals_(const DlImageFilter &other) const override
static std::shared_ptr< DlImageFilter > Make(const std::shared_ptr< DlImageFilter > &outer, const std::shared_ptr< DlImageFilter > &inner)
DlImageFilterType type() const override
A 4x4 matrix using column-major storage.
Definition matrix.h:37