Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
picture.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_LIB_UI_PAINTING_PICTURE_H_
6#define FLUTTER_LIB_UI_PAINTING_PICTURE_H_
7
14
15namespace flutter {
16class Canvas;
17
18class Picture : public RefCountedDartWrappable<Picture> {
19 DEFINE_WRAPPERTYPEINFO();
21
22 public:
23 ~Picture() override;
25 Dart_Handle dart_handle,
26 sk_sp<DisplayList> display_list);
27
28 sk_sp<DisplayList> display_list() const { return display_list_; }
29
30 Dart_Handle toImage(uint32_t width,
31 uint32_t height,
32 Dart_Handle raw_image_callback);
33
34 void toImageSync(uint32_t width,
35 uint32_t height,
36 int32_t target_format,
37 Dart_Handle raw_image_handle);
38
39 void dispose();
40
41 size_t GetAllocationSize() const;
42
43 static void RasterizeToImageSync(sk_sp<DisplayList> display_list,
44 uint32_t width,
45 uint32_t height,
46 SnapshotPixelFormat target_format,
47 Dart_Handle raw_image_handle);
48
49 static Dart_Handle RasterizeToImage(const sk_sp<DisplayList>& display_list,
50 uint32_t width,
51 uint32_t height,
52 Dart_Handle raw_image_callback);
53
54 static Dart_Handle RasterizeLayerTreeToImage(
55 std::unique_ptr<LayerTree> layer_tree,
56 Dart_Handle raw_image_callback);
57
58 // Callers may provide either a display list or a layer tree, but not both.
59 //
60 // If a layer tree is provided, it will be flattened on the raster thread, and
61 // picture_bounds should be the layer tree's frame_size().
62 static Dart_Handle DoRasterizeToImage(const sk_sp<DisplayList>& display_list,
63 std::unique_ptr<LayerTree> layer_tree,
64 uint32_t width,
65 uint32_t height,
66 Dart_Handle raw_image_callback);
67
68 private:
69 explicit Picture(sk_sp<DisplayList> display_list);
70
71 sk_sp<DisplayList> display_list_;
72};
73
74} // namespace flutter
75
76#endif // FLUTTER_LIB_UI_PAINTING_PICTURE_H_
~Picture() override
sk_sp< DisplayList > display_list() const
Definition picture.h:28
static void RasterizeToImageSync(sk_sp< DisplayList > display_list, uint32_t width, uint32_t height, SnapshotPixelFormat target_format, Dart_Handle raw_image_handle)
Definition picture.cc:107
static void CreateAndAssociateWithDartWrapper(Dart_Handle dart_handle, sk_sp< DisplayList > display_list)
Definition picture.cc:29
Dart_Handle toImage(uint32_t width, uint32_t height, Dart_Handle raw_image_callback)
Definition picture.cc:42
void toImageSync(uint32_t width, uint32_t height, int32_t target_format, Dart_Handle raw_image_handle)
Definition picture.cc:51
static Dart_Handle RasterizeLayerTreeToImage(std::unique_ptr< LayerTree > layer_tree, Dart_Handle raw_image_callback)
Definition picture.cc:150
size_t GetAllocationSize() const
Definition picture.cc:134
static Dart_Handle DoRasterizeToImage(const sk_sp< DisplayList > &display_list, std::unique_ptr< LayerTree > layer_tree, uint32_t width, uint32_t height, Dart_Handle raw_image_callback)
Definition picture.cc:159
static Dart_Handle RasterizeToImage(const sk_sp< DisplayList > &display_list, uint32_t width, uint32_t height, Dart_Handle raw_image_callback)
Definition picture.cc:142
#define FML_FRIEND_MAKE_REF_COUNTED(T)
int32_t height
int32_t width