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_FLOW_LAYERS_IMAGE_FILTER_LAYER_H_
6#define FLUTTER_FLOW_LAYERS_IMAGE_FILTER_LAYER_H_
7
8#include <memory>
9#include "flutter/flow/layers/cacheable_layer.h"
10
11namespace flutter {
12
13class ImageFilterLayer : public CacheableContainerLayer {
14 public:
15 explicit ImageFilterLayer(std::shared_ptr<const DlImageFilter> filter,
16 const SkPoint& offset = SkPoint::Make(x: 0, y: 0));
17
18 void Diff(DiffContext* context, const Layer* old_layer) override;
19
20 void Preroll(PrerollContext* context) override;
21
22 void Paint(PaintContext& context) const override;
23
24 private:
25 SkPoint offset_;
26 std::shared_ptr<const DlImageFilter> filter_;
27 std::shared_ptr<const DlImageFilter> transformed_filter_;
28
29 FML_DISALLOW_COPY_AND_ASSIGN(ImageFilterLayer);
30};
31
32} // namespace flutter
33
34#endif // FLUTTER_FLOW_LAYERS_IMAGE_FILTER_LAYER_H_
35

source code of flutter_engine/flutter/flow/layers/image_filter_layer.h