Flutter Engine
 
Loading...
Searching...
No Matches
dl_blur_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_BLUR_IMAGE_FILTER_H_
6#define FLUTTER_DISPLAY_LIST_EFFECTS_IMAGE_FILTERS_DL_BLUR_IMAGE_FILTER_H_
7
9
11
12namespace flutter {
13
14class DlBlurImageFilter final : public DlImageFilter {
15 public:
18 explicit DlBlurImageFilter(const DlBlurImageFilter* filter)
19 : DlBlurImageFilter(filter->sigma_x_,
20 filter->sigma_y_,
21 filter->tile_mode_) {}
23 : DlBlurImageFilter(&filter) {}
24
25 static std::shared_ptr<DlImageFilter> Make(DlScalar sigma_x,
28
29 std::shared_ptr<DlImageFilter> shared() const override {
30 return std::make_shared<DlBlurImageFilter>(this);
31 }
32
33 DlImageFilterType type() const override { return DlImageFilterType::kBlur; }
34 size_t size() const override { return sizeof(*this); }
35
36 const DlBlurImageFilter* asBlur() const override { return this; }
37
38 bool modifies_transparent_black() const override { return false; }
39
40 DlRect* map_local_bounds(const DlRect& input_bounds,
41 DlRect& output_bounds) const override;
42
43 DlIRect* map_device_bounds(const DlIRect& input_bounds,
44 const DlMatrix& ctm,
45 DlIRect& output_bounds) const override;
46
47 DlIRect* get_input_device_bounds(const DlIRect& output_bounds,
48 const DlMatrix& ctm,
49 DlIRect& input_bounds) const override;
50
51 DlScalar sigma_x() const { return sigma_x_; }
52 DlScalar sigma_y() const { return sigma_y_; }
53 DlTileMode tile_mode() const { return tile_mode_; }
54
55 protected:
56 bool equals_(const DlImageFilter& other) const override;
57
58 private:
59 DlScalar sigma_x_;
60 DlScalar sigma_y_;
61 DlTileMode tile_mode_;
62};
63
64} // namespace flutter
65
66#endif // FLUTTER_DISPLAY_LIST_EFFECTS_IMAGE_FILTERS_DL_BLUR_IMAGE_FILTER_H_
bool modifies_transparent_black() const override
DlBlurImageFilter(DlScalar sigma_x, DlScalar sigma_y, DlTileMode tile_mode)
DlImageFilterType type() const override
DlIRect * get_input_device_bounds(const DlIRect &output_bounds, const DlMatrix &ctm, DlIRect &input_bounds) const override
std::shared_ptr< DlImageFilter > shared() const override
bool equals_(const DlImageFilter &other) const override
const DlBlurImageFilter * asBlur() const override
size_t size() const override
static std::shared_ptr< DlImageFilter > Make(DlScalar sigma_x, DlScalar sigma_y, DlTileMode tile_mode)
DlRect * map_local_bounds(const DlRect &input_bounds, DlRect &output_bounds) const override
DlBlurImageFilter(const DlBlurImageFilter *filter)
DlBlurImageFilter(const DlBlurImageFilter &filter)
DlIRect * map_device_bounds(const DlIRect &input_bounds, const DlMatrix &ctm, DlIRect &output_bounds) const override
impeller::Scalar DlScalar
A 4x4 matrix using column-major storage.
Definition matrix.h:37