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_SHADER_MASK_LAYER_H_
6#define FLUTTER_FLOW_LAYERS_SHADER_MASK_LAYER_H_
7
8#include "flutter/flow/layers/container_layer.h"
9
10#include "third_party/skia/include/core/SkShader.h"
11
12namespace flutter {
13
14class ShaderMaskLayer : public ContainerLayer {
15 public:
16 ShaderMaskLayer(sk_sp<SkShader> shader,
17 const SkRect& mask_rect,
18 SkBlendMode blend_mode);
19
20 void Preroll(PrerollContext* context, const SkMatrix& matrix) override;
21
22 void Paint(PaintContext& context) const override;
23
24 private:
25 sk_sp<SkShader> shader_;
26 SkRect mask_rect_;
27 SkBlendMode blend_mode_;
28
29 FML_DISALLOW_COPY_AND_ASSIGN(ShaderMaskLayer);
30};
31
32} // namespace flutter
33
34#endif // FLUTTER_FLOW_LAYERS_SHADER_MASK_LAYER_H_
35