19 const std::shared_ptr<const fml::SyncSwitch>& is_gpu_disabled_sync_switch) {
22 auto image = dl_image->skia_image();
25 if (
image ==
nullptr) {
33 if (dimensions.isEmpty()) {
48 encode_task(raster_image);
53 if (!raster_task_runner) {
59 if (!io_task_runner) {
68 raster_task_runner->PostTask([dl_image, encode_task = std::move(encode_task),
69 resource_context, snapshot_delegate,
70 io_task_runner, is_gpu_disabled_sync_switch,
71 raster_task_runner]() {
72 auto image = dl_image->skia_image();
73 if (!
image || !snapshot_delegate) {
74 io_task_runner->PostTask(
75 [encode_task = encode_task]()
mutable { encode_task(
nullptr); });
80 snapshot_delegate->ConvertToRasterImage(
image);
82 io_task_runner->PostTask([
image, encode_task = encode_task,
83 raster_image = std::move(raster_image),
84 resource_context, is_gpu_disabled_sync_switch,
85 owning_context = dl_image->owning_context(),
86 raster_task_runner]()
mutable {
92 image, resource_context, is_gpu_disabled_sync_switch);
94 encode_task(raster_image);
96 raster_task_runner->PostTask([
image = std::move(
image)]() {});
void ConvertImageToRasterSkia(const sk_sp< DlImage > &dl_image, std::function< void(sk_sp< SkImage >)> encode_task, const fml::RefPtr< fml::TaskRunner > &raster_task_runner, const fml::RefPtr< fml::TaskRunner > &io_task_runner, const fml::WeakPtr< GrDirectContext > &resource_context, const fml::TaskRunnerAffineWeakPtr< SnapshotDelegate > &snapshot_delegate, const std::shared_ptr< const fml::SyncSwitch > &is_gpu_disabled_sync_switch)