Flutter Engine
texture_layer.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_FLOW_LAYERS_TEXTURE_LAYER_H_
6 #define FLUTTER_FLOW_LAYERS_TEXTURE_LAYER_H_
7 
8 #include "flutter/flow/layers/layer.h"
9 #include "third_party/skia/include/core/SkPoint.h"
10 #include "third_party/skia/include/core/SkSize.h"
11 
12 namespace flutter {
13 
14 class TextureLayer : public Layer {
15  public:
16  TextureLayer(const SkPoint& offset,
17  const SkSize& size,
18  int64_t texture_id,
19  bool freeze,
20  const SkSamplingOptions& sampling);
21 
22  bool IsReplacing(DiffContext* context, const Layer* layer) const override {
23  return layer->as_texture_layer() != nullptr;
24  }
25 
26  void Diff(DiffContext* context, const Layer* old_layer) override;
27 
28  const TextureLayer* as_texture_layer() const override { return this; }
29 
30  void Preroll(PrerollContext* context, const SkMatrix& matrix) override;
31  void Paint(PaintContext& context) const override;
32 
33  private:
34  SkPoint offset_;
35  SkSize size_;
36  int64_t texture_id_;
37  bool freeze_;
38  SkSamplingOptions sampling_;
39 
40  FML_DISALLOW_COPY_AND_ASSIGN(TextureLayer);
41 };
42 
43 } // namespace flutter
44 
45 #endif // FLUTTER_FLOW_LAYERS_TEXTURE_LAYER_H_
int64_t texture_id
constexpr std::size_t size(T(&array)[N])
Definition: size.h:13
bool IsReplacing(DiffContext *context, const Layer *layer) const override
Definition: texture_layer.h:22
const TextureLayer * as_texture_layer() const override
Definition: texture_layer.h:28
void Paint(PaintContext &context) const override
TextureLayer(const SkPoint &offset, const SkSize &size, int64_t texture_id, bool freeze, const SkSamplingOptions &sampling)
void Diff(DiffContext *context, const Layer *old_layer) override
void Preroll(PrerollContext *context, const SkMatrix &matrix) override
virtual const TextureLayer * as_texture_layer() const
Definition: layer.h:274