29 static sk_sp<DlDeferredImageGPUSkia>
Make(
30 const SkImageInfo& image_info,
31 sk_sp<DisplayList> display_list,
37 const SkImageInfo& image_info,
38 std::unique_ptr<LayerTree> layer_tree,
67 std::optional<std::string>
get_error()
const override;
75 class ImageWrapper final :
public std::enable_shared_from_this<ImageWrapper>,
78 static std::shared_ptr<ImageWrapper> Make(
79 const SkImageInfo& image_info,
80 sk_sp<DisplayList> display_list,
85 static std::shared_ptr<ImageWrapper> MakeFromLayerTree(
86 const SkImageInfo& image_info,
87 std::unique_ptr<LayerTree> layer_tree,
92 const SkImageInfo image_info()
const {
return image_info_; }
93 const GrBackendTexture&
texture()
const {
return texture_; }
94 std::optional<std::string> get_error();
95 sk_sp<SkImage> CreateSkiaImage()
const;
100 const SkImageInfo image_info_;
101 sk_sp<DisplayList> display_list_;
105 std::shared_ptr<TextureRegistry> texture_registry_;
107 mutable std::mutex error_mutex_;
108 std::optional<std::string> error_;
110 GrBackendTexture texture_;
111 sk_sp<GrDirectContext> context_;
113 sk_sp<SkImage> image_;
116 const SkImageInfo& image_info,
117 sk_sp<DisplayList> display_list,
126 void SnapshotDisplayList(std::unique_ptr<LayerTree> layer_tree =
nullptr);
129 void OnGrContextCreated()
override;
132 void OnGrContextDestroyed()
override;
135 const std::shared_ptr<ImageWrapper> image_wrapper_;
139 DlDeferredImageGPUSkia(std::shared_ptr<ImageWrapper> image_wrapper,
static sk_sp< DlDeferredImageGPUSkia > Make(const SkImageInfo &image_info, sk_sp< DisplayList > display_list, fml::TaskRunnerAffineWeakPtr< SnapshotDelegate > snapshot_delegate, const fml::RefPtr< fml::TaskRunner > &raster_task_runner, fml::RefPtr< SkiaUnrefQueue > unref_queue)
static sk_sp< DlDeferredImageGPUSkia > MakeFromLayerTree(const SkImageInfo &image_info, std::unique_ptr< LayerTree > layer_tree, fml::TaskRunnerAffineWeakPtr< SnapshotDelegate > snapshot_delegate, const fml::RefPtr< fml::TaskRunner > &raster_task_runner, fml::RefPtr< SkiaUnrefQueue > unref_queue)