Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(486)

Side by Side Diff: cc/tiles/software_image_decode_controller.cc

Issue 1866043006: cc: Remove ScheduleOnOriginThread() and CompleteOnOriginThread(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nits Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/software_image_decode_controller.h" 5 #include "cc/tiles/software_image_decode_controller.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <functional> 9 #include <functional>
10 10
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 SoftwareImageDecodeController::ImageKeyHash>* task_map_; 55 SoftwareImageDecodeController::ImageKeyHash>* task_map_;
56 SoftwareImageDecodeController::ImageKey key_; 56 SoftwareImageDecodeController::ImageKey key_;
57 }; 57 };
58 58
59 class ImageDecodeTaskImpl : public TileTask { 59 class ImageDecodeTaskImpl : public TileTask {
60 public: 60 public:
61 ImageDecodeTaskImpl(SoftwareImageDecodeController* controller, 61 ImageDecodeTaskImpl(SoftwareImageDecodeController* controller,
62 const SoftwareImageDecodeController::ImageKey& image_key, 62 const SoftwareImageDecodeController::ImageKey& image_key,
63 const DrawImage& image, 63 const DrawImage& image,
64 const ImageDecodeController::TracingInfo& tracing_info) 64 const ImageDecodeController::TracingInfo& tracing_info)
65 : TileTask(true), 65 : TileTask(TileTask::Type::IMAGE_DECODE, true),
66 controller_(controller), 66 controller_(controller),
67 image_key_(image_key), 67 image_key_(image_key),
68 image_(image), 68 image_(image),
69 tracing_info_(tracing_info) {} 69 tracing_info_(tracing_info) {}
70 70
71 // Overridden from Task: 71 // Overridden from Task:
72 void RunOnWorkerThread() override { 72 void RunOnWorkerThread() override {
73 TRACE_EVENT2("cc", "ImageDecodeTaskImpl::RunOnWorkerThread", "mode", 73 TRACE_EVENT2("cc", "ImageDecodeTaskImpl::RunOnWorkerThread", "mode",
74 "software", "source_prepare_tiles_id", 74 "software", "source_prepare_tiles_id",
75 tracing_info_.prepare_tiles_id); 75 tracing_info_.prepare_tiles_id);
76 devtools_instrumentation::ScopedImageDecodeTask image_decode_task( 76 devtools_instrumentation::ScopedImageDecodeTask image_decode_task(
77 image_.image().get()); 77 image_.image().get());
78 controller_->DecodeImage(image_key_, image_); 78 controller_->DecodeImage(image_key_, image_);
79 } 79 }
80 80
81 // Overridden from TileTask:
82 void ScheduleOnOriginThread(RasterBufferProvider* provider) override {}
83 void CompleteOnOriginThread(RasterBufferProvider* provider) override {
84 controller_->RemovePendingTask(image_key_);
85 }
86
87 protected: 81 protected:
88 ~ImageDecodeTaskImpl() override {} 82 ~ImageDecodeTaskImpl() override {}
89 83
90 private: 84 public:
vmpstr 2016/05/18 19:08:34 Why are these public? This doesn't look correct.
prashant.n 2016/05/19 00:59:52 Yes. This looks odd and not good as this class is
91 SoftwareImageDecodeController* controller_; 85 SoftwareImageDecodeController* controller_;
92 SoftwareImageDecodeController::ImageKey image_key_; 86 SoftwareImageDecodeController::ImageKey image_key_;
93 DrawImage image_; 87 DrawImage image_;
94 const ImageDecodeController::TracingInfo tracing_info_; 88 const ImageDecodeController::TracingInfo tracing_info_;
95 89
90 private:
96 DISALLOW_COPY_AND_ASSIGN(ImageDecodeTaskImpl); 91 DISALLOW_COPY_AND_ASSIGN(ImageDecodeTaskImpl);
97 }; 92 };
98 93
99 SkSize GetScaleAdjustment(const ImageDecodeControllerKey& key) { 94 SkSize GetScaleAdjustment(const ImageDecodeControllerKey& key) {
100 // If the requested filter quality did not require scale, then the adjustment 95 // If the requested filter quality did not require scale, then the adjustment
101 // is identity. 96 // is identity.
102 if (key.can_use_original_decode()) 97 if (key.can_use_original_decode())
103 return SkSize::Make(1.f, 1.f); 98 return SkSize::Make(1.f, 1.f);
104 99
105 float x_scale = 100 float x_scale =
(...skipping 610 matching lines...) Expand 10 before | Expand all | Expand 10 after
716 if (it->second->is_locked()) { 711 if (it->second->is_locked()) {
717 ++it; 712 ++it;
718 continue; 713 continue;
719 } 714 }
720 715
721 it = decoded_images_.Erase(it); 716 it = decoded_images_.Erase(it);
722 --num_to_remove; 717 --num_to_remove;
723 } 718 }
724 } 719 }
725 720
721 void SoftwareImageDecodeController::OnImageDecodeTaskCompleted(TileTask* task) {
722 ImageDecodeTaskImpl* decode_task = static_cast<ImageDecodeTaskImpl*>(task);
vmpstr 2016/05/18 19:08:34 I think we should rework this so we don't need a s
prashant.n 2016/05/19 00:59:52 I'll check this. static cast was added for downcas
723 DCHECK(decode_task);
724 RemovePendingTask(decode_task->image_key_);
725 }
726
726 void SoftwareImageDecodeController::RemovePendingTask(const ImageKey& key) { 727 void SoftwareImageDecodeController::RemovePendingTask(const ImageKey& key) {
727 base::AutoLock lock(lock_); 728 base::AutoLock lock(lock_);
728 pending_image_tasks_.erase(key); 729 pending_image_tasks_.erase(key);
729 } 730 }
730 731
731 bool SoftwareImageDecodeController::OnMemoryDump( 732 bool SoftwareImageDecodeController::OnMemoryDump(
732 const base::trace_event::MemoryDumpArgs& args, 733 const base::trace_event::MemoryDumpArgs& args,
733 base::trace_event::ProcessMemoryDump* pmd) { 734 base::trace_event::ProcessMemoryDump* pmd) {
734 base::AutoLock lock(lock_); 735 base::AutoLock lock(lock_);
735 736
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
961 void SoftwareImageDecodeController::MemoryBudget::ResetUsage() { 962 void SoftwareImageDecodeController::MemoryBudget::ResetUsage() {
962 current_usage_bytes_ = 0; 963 current_usage_bytes_ = 0;
963 } 964 }
964 965
965 size_t SoftwareImageDecodeController::MemoryBudget::GetCurrentUsageSafe() 966 size_t SoftwareImageDecodeController::MemoryBudget::GetCurrentUsageSafe()
966 const { 967 const {
967 return current_usage_bytes_.ValueOrDie(); 968 return current_usage_bytes_.ValueOrDie();
968 } 969 }
969 970
970 } // namespace cc 971 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698