OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "cc/tiles/gpu_image_decode_controller.h" | 5 #include "cc/tiles/gpu_image_decode_controller.h" |
6 | 6 |
7 #include "base/memory/discardable_memory_allocator.h" | 7 #include "base/memory/discardable_memory_allocator.h" |
8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
9 #include "base/numerics/safe_math.h" | 9 #include "base/numerics/safe_math.h" |
10 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 ImageUploadTaskImpl(GpuImageDecodeController* controller, | 103 ImageUploadTaskImpl(GpuImageDecodeController* controller, |
104 const DrawImage& draw_image, | 104 const DrawImage& draw_image, |
105 scoped_refptr<TileTask> decode_dependency, | 105 scoped_refptr<TileTask> decode_dependency, |
106 uint64_t source_prepare_tiles_id) | 106 uint64_t source_prepare_tiles_id) |
107 : TileTask(false), | 107 : TileTask(false), |
108 controller_(controller), | 108 controller_(controller), |
109 image_(draw_image), | 109 image_(draw_image), |
110 image_ref_(skia::SharePtr(draw_image.image())), | 110 image_ref_(skia::SharePtr(draw_image.image())), |
111 source_prepare_tiles_id_(source_prepare_tiles_id) { | 111 source_prepare_tiles_id_(source_prepare_tiles_id) { |
112 DCHECK(!SkipImage(draw_image)); | 112 DCHECK(!SkipImage(draw_image)); |
113 dependencies_.push_back(std::move(decode_dependency)); | 113 // For already-uploaded image, ImageDecodeTaskImpl is not created. The |
| 114 // ImageUploadTaskImpl should hold valid decode dependency in |
| 115 // |dependencies_|. |
| 116 if (decode_dependency.get()) |
| 117 dependencies_.push_back(std::move(decode_dependency)); |
114 } | 118 } |
115 | 119 |
116 // Override from Task: | 120 // Override from Task: |
117 void RunOnWorkerThread() override { | 121 void RunOnWorkerThread() override { |
118 TRACE_EVENT2("cc", "ImageUploadTaskImpl::RunOnWorkerThread", "mode", "gpu", | 122 TRACE_EVENT2("cc", "ImageUploadTaskImpl::RunOnWorkerThread", "mode", "gpu", |
119 "source_prepare_tiles_id", source_prepare_tiles_id_); | 123 "source_prepare_tiles_id", source_prepare_tiles_id_); |
120 controller_->UploadImage(image_); | 124 controller_->UploadImage(image_); |
121 } | 125 } |
122 | 126 |
123 void ScheduleOnOriginThread(RasterBufferProvider* provider) override {} | 127 void ScheduleOnOriginThread(RasterBufferProvider* provider) override {} |
(...skipping 609 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
733 } | 737 } |
734 | 738 |
735 SkImageInfo GpuImageDecodeController::CreateImageInfoForDrawImage( | 739 SkImageInfo GpuImageDecodeController::CreateImageInfoForDrawImage( |
736 const DrawImage& draw_image) const { | 740 const DrawImage& draw_image) const { |
737 return SkImageInfo::Make( | 741 return SkImageInfo::Make( |
738 draw_image.image()->width(), draw_image.image()->height(), | 742 draw_image.image()->width(), draw_image.image()->height(), |
739 ResourceFormatToClosestSkColorType(format_), kPremul_SkAlphaType); | 743 ResourceFormatToClosestSkColorType(format_), kPremul_SkAlphaType); |
740 } | 744 } |
741 | 745 |
742 } // namespace cc | 746 } // namespace cc |
OLD | NEW |