Flutter Engine
 
Loading...
Searching...
No Matches
dl_runtime_effect_image_filter.cc
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
6
7namespace flutter {
8
9std::shared_ptr<DlImageFilter> DlRuntimeEffectImageFilter::Make(
10 sk_sp<DlRuntimeEffect> runtime_effect,
11 std::vector<std::shared_ptr<DlColorSource>> samplers,
12 std::shared_ptr<std::vector<uint8_t>> uniform_data) {
13 return std::make_shared<DlRuntimeEffectImageFilter>(
14 std::move(runtime_effect), std::move(samplers), std::move(uniform_data));
15}
16
18 const DlRect& input_bounds,
19 DlRect& output_bounds) const {
20 output_bounds = input_bounds;
21 return &output_bounds;
22}
23
25 const DlIRect& input_bounds,
26 const DlMatrix& ctm,
27 DlIRect& output_bounds) const {
28 output_bounds = input_bounds;
29 return &output_bounds;
30}
31
33 const DlIRect& output_bounds,
34 const DlMatrix& ctm,
35 DlIRect& input_bounds) const {
36 input_bounds = output_bounds;
37 return &input_bounds;
38}
39
42 auto that = static_cast<const DlRuntimeEffectImageFilter*>(&other);
43 if (runtime_effect_ != that->runtime_effect_ ||
44 samplers_.size() != that->samplers().size() ||
45 uniform_data_->size() != that->uniform_data()->size()) {
46 return false;
47 }
48 for (auto i = 0u; i < samplers_.size(); i++) {
49 if (samplers_[i] != that->samplers()[i]) {
50 return false;
51 }
52 }
53 for (auto i = 0u; i < uniform_data_->size(); i++) {
54 if (uniform_data_->at(i) != that->uniform_data()->at(i)) {
55 return false;
56 }
57 }
58 return true;
59}
60
61} // namespace flutter
virtual T type() const =0
bool equals_(const DlImageFilter &other) const override
DlIRect * map_device_bounds(const DlIRect &input_bounds, const DlMatrix &ctm, DlIRect &output_bounds) const override
const sk_sp< DlRuntimeEffect > runtime_effect() const
DlRect * map_local_bounds(const DlRect &input_bounds, DlRect &output_bounds) const override
const std::shared_ptr< std::vector< uint8_t > > & uniform_data() const
const std::vector< std::shared_ptr< DlColorSource > > & samplers() const
DlIRect * get_input_device_bounds(const DlIRect &output_bounds, const DlMatrix &ctm, DlIRect &input_bounds) const override
static std::shared_ptr< DlImageFilter > Make(sk_sp< DlRuntimeEffect > runtime_effect, std::vector< std::shared_ptr< DlColorSource > > samplers, std::shared_ptr< std::vector< uint8_t > > uniform_data)
#define FML_DCHECK(condition)
Definition logging.h:122
A 4x4 matrix using column-major storage.
Definition matrix.h:37