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 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 public: | 100 public: |
101 ImageUploadTaskImpl(GpuImageDecodeController* controller, | 101 ImageUploadTaskImpl(GpuImageDecodeController* controller, |
102 const DrawImage& draw_image, | 102 const DrawImage& draw_image, |
103 scoped_refptr<TileTask> decode_dependency, | 103 scoped_refptr<TileTask> decode_dependency, |
104 uint64_t source_prepare_tiles_id) | 104 uint64_t source_prepare_tiles_id) |
105 : TileTask(false), | 105 : TileTask(false), |
106 controller_(controller), | 106 controller_(controller), |
107 image_(draw_image), | 107 image_(draw_image), |
108 source_prepare_tiles_id_(source_prepare_tiles_id) { | 108 source_prepare_tiles_id_(source_prepare_tiles_id) { |
109 DCHECK(!SkipImage(draw_image)); | 109 DCHECK(!SkipImage(draw_image)); |
110 dependencies_.push_back(std::move(decode_dependency)); | 110 // If an image is already decoded and locked, we will not generate a |
| 111 // decode task. |
| 112 if (decode_dependency) |
| 113 dependencies_.push_back(std::move(decode_dependency)); |
111 } | 114 } |
112 | 115 |
113 // Override from Task: | 116 // Override from Task: |
114 void RunOnWorkerThread() override { | 117 void RunOnWorkerThread() override { |
115 TRACE_EVENT2("cc", "ImageUploadTaskImpl::RunOnWorkerThread", "mode", "gpu", | 118 TRACE_EVENT2("cc", "ImageUploadTaskImpl::RunOnWorkerThread", "mode", "gpu", |
116 "source_prepare_tiles_id", source_prepare_tiles_id_); | 119 "source_prepare_tiles_id", source_prepare_tiles_id_); |
117 controller_->UploadImage(image_); | 120 controller_->UploadImage(image_); |
118 } | 121 } |
119 | 122 |
120 void ScheduleOnOriginThread(RasterBufferProvider* provider) override {} | 123 void ScheduleOnOriginThread(RasterBufferProvider* provider) override {} |
(...skipping 613 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
734 } | 737 } |
735 | 738 |
736 SkImageInfo GpuImageDecodeController::CreateImageInfoForDrawImage( | 739 SkImageInfo GpuImageDecodeController::CreateImageInfoForDrawImage( |
737 const DrawImage& draw_image) const { | 740 const DrawImage& draw_image) const { |
738 return SkImageInfo::Make( | 741 return SkImageInfo::Make( |
739 draw_image.image()->width(), draw_image.image()->height(), | 742 draw_image.image()->width(), draw_image.image()->height(), |
740 ResourceFormatToClosestSkColorType(format_), kPremul_SkAlphaType); | 743 ResourceFormatToClosestSkColorType(format_), kPremul_SkAlphaType); |
741 } | 744 } |
742 | 745 |
743 } // namespace cc | 746 } // namespace cc |
OLD | NEW |