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

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

Issue 1854723002: cc: Simplify task and its derived classes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/tile_manager.h" 5 #include "cc/tiles/tile_manager.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 23 matching lines...) Expand all
34 34
35 // Flag to indicate whether we should try and detect that 35 // Flag to indicate whether we should try and detect that
36 // a tile is of solid color. 36 // a tile is of solid color.
37 const bool kUseColorEstimator = true; 37 const bool kUseColorEstimator = true;
38 38
39 DEFINE_SCOPED_UMA_HISTOGRAM_AREA_TIMER( 39 DEFINE_SCOPED_UMA_HISTOGRAM_AREA_TIMER(
40 ScopedRasterTaskTimer, 40 ScopedRasterTaskTimer,
41 "Compositing.%s.RasterTask.RasterUs", 41 "Compositing.%s.RasterTask.RasterUs",
42 "Compositing.%s.RasterTask.RasterPixelsPerMs"); 42 "Compositing.%s.RasterTask.RasterPixelsPerMs");
43 43
44 class RasterTaskImpl : public RasterTask { 44 class RasterTaskImpl : public DependencyTask {
45 public: 45 public:
46 RasterTaskImpl(const Resource* resource, 46 RasterTaskImpl(const Resource* resource,
47 scoped_refptr<DisplayListRasterSource> raster_source, 47 scoped_refptr<DisplayListRasterSource> raster_source,
48 const gfx::Rect& content_rect, 48 const gfx::Rect& content_rect,
49 const gfx::Rect& invalid_content_rect, 49 const gfx::Rect& invalid_content_rect,
50 float contents_scale, 50 float contents_scale,
51 bool include_images, 51 bool include_images,
52 TileResolution tile_resolution, 52 TileResolution tile_resolution,
53 int layer_id, 53 int layer_id,
54 uint64_t source_prepare_tiles_id, 54 uint64_t source_prepare_tiles_id,
55 const void* tile, 55 const void* tile,
56 uint64_t new_content_id, 56 uint64_t new_content_id,
57 uint64_t previous_content_id, 57 uint64_t previous_content_id,
58 uint64_t resource_content_id, 58 uint64_t resource_content_id,
59 int source_frame_number, 59 int source_frame_number,
60 const base::Callback<void(bool)>& reply, 60 const base::Callback<void(bool)>& reply,
61 ImageDecodeTask::Vector* dependencies) 61 DependencyTask::Vector* dependencies)
62 : RasterTask(dependencies), 62 : DependencyTask(dependencies),
63 resource_(resource), 63 resource_(resource),
64 raster_source_(std::move(raster_source)), 64 raster_source_(std::move(raster_source)),
65 content_rect_(content_rect), 65 content_rect_(content_rect),
66 invalid_content_rect_(invalid_content_rect), 66 invalid_content_rect_(invalid_content_rect),
67 contents_scale_(contents_scale), 67 contents_scale_(contents_scale),
68 include_images_(include_images), 68 include_images_(include_images),
69 tile_resolution_(tile_resolution), 69 tile_resolution_(tile_resolution),
70 layer_id_(layer_id), 70 layer_id_(layer_id),
71 source_prepare_tiles_id_(source_prepare_tiles_id), 71 source_prepare_tiles_id_(source_prepare_tiles_id),
72 tile_(tile), 72 tile_(tile),
73 new_content_id_(new_content_id), 73 new_content_id_(new_content_id),
74 previous_content_id_(previous_content_id), 74 previous_content_id_(previous_content_id),
75 resource_content_id_(resource_content_id), 75 resource_content_id_(resource_content_id),
76 source_frame_number_(source_frame_number), 76 source_frame_number_(source_frame_number),
77 reply_(reply) {} 77 reply_(reply) {}
78 78
79 // Overridden from Task: 79 // Overridden from DependencyTask:
80 void RunOnWorkerThread() override { 80 void RunOnWorkerThread() override {
81 TRACE_EVENT1("cc", "RasterizerTaskImpl::RunOnWorkerThread", 81 TRACE_EVENT1("cc", "RasterizerTaskImpl::RunOnWorkerThread",
82 "source_prepare_tiles_id", source_prepare_tiles_id_); 82 "source_prepare_tiles_id", source_prepare_tiles_id_);
83 83
84 DCHECK(raster_source_.get()); 84 DCHECK(raster_source_.get());
85 DCHECK(raster_buffer_); 85 DCHECK(raster_buffer_);
86 86
87 frame_viewer_instrumentation::ScopedRasterTask raster_task( 87 frame_viewer_instrumentation::ScopedRasterTask raster_task(
88 tile_, tile_resolution_, source_frame_number_, layer_id_); 88 tile_, tile_resolution_, source_frame_number_, layer_id_);
89 ScopedRasterTaskTimer timer; 89 ScopedRasterTaskTimer timer;
90 timer.SetArea(content_rect_.size().GetArea()); 90 timer.SetArea(content_rect_.size().GetArea());
91 91
92 DCHECK(raster_source_); 92 DCHECK(raster_source_);
93 93
94 raster_buffer_->Playback(raster_source_.get(), content_rect_, 94 raster_buffer_->Playback(raster_source_.get(), content_rect_,
95 invalid_content_rect_, new_content_id_, 95 invalid_content_rect_, new_content_id_,
96 contents_scale_, include_images_); 96 contents_scale_, include_images_);
97 } 97 }
98 98
99 // Overridden from TileTask: 99 void ScheduleOnOriginThread(DependencyTaskClient* client) override {
100 void ScheduleOnOriginThread(TileTaskClient* client) override {
101 DCHECK(!raster_buffer_); 100 DCHECK(!raster_buffer_);
102 raster_buffer_ = client->AcquireBufferForRaster( 101 raster_buffer_ = client->AcquireBufferForRaster(
103 resource_, resource_content_id_, previous_content_id_); 102 resource_, resource_content_id_, previous_content_id_);
104 } 103 }
105 void CompleteOnOriginThread(TileTaskClient* client) override { 104
105 void CompleteOnOriginThread(DependencyTaskClient* client) override {
106 client->ReleaseBufferForRaster(std::move(raster_buffer_)); 106 client->ReleaseBufferForRaster(std::move(raster_buffer_));
107 reply_.Run(!HasFinishedRunning()); 107 reply_.Run(!HasFinishedRunning());
108 } 108 }
109 109
110 protected: 110 protected:
111 ~RasterTaskImpl() override { DCHECK(!raster_buffer_); } 111 ~RasterTaskImpl() override { DCHECK(!raster_buffer_); }
112 112
113 private: 113 private:
114 const Resource* resource_; 114 const Resource* resource_;
115 scoped_refptr<DisplayListRasterSource> raster_source_; 115 scoped_refptr<DisplayListRasterSource> raster_source_;
(...skipping 19 matching lines...) Expand all
135 // other remaining tasks. 135 // other remaining tasks.
136 const size_t kRequiredForActivationDoneTaskPriority = 1u; 136 const size_t kRequiredForActivationDoneTaskPriority = 1u;
137 const size_t kRequiredForDrawDoneTaskPriority = 2u; 137 const size_t kRequiredForDrawDoneTaskPriority = 2u;
138 const size_t kAllDoneTaskPriority = 3u; 138 const size_t kAllDoneTaskPriority = 3u;
139 139
140 // For correctness, |kTileTaskPriorityBase| must be greater than 140 // For correctness, |kTileTaskPriorityBase| must be greater than
141 // all task set done task priorities. 141 // all task set done task priorities.
142 size_t kTileTaskPriorityBase = 10u; 142 size_t kTileTaskPriorityBase = 10u;
143 143
144 void InsertNodeForTask(TaskGraph* graph, 144 void InsertNodeForTask(TaskGraph* graph,
145 TileTask* task, 145 DependencyTask* task,
146 uint16_t category, 146 uint16_t category,
147 uint16_t priority, 147 uint16_t priority,
148 size_t dependencies) { 148 size_t dependencies) {
149 DCHECK(std::find_if(graph->nodes.begin(), graph->nodes.end(), 149 DCHECK(std::find_if(graph->nodes.begin(), graph->nodes.end(),
150 [task](const TaskGraph::Node& node) { 150 [task](const TaskGraph::Node& node) {
151 return node.task == task; 151 return node.task == task;
152 }) == graph->nodes.end()); 152 }) == graph->nodes.end());
153 graph->nodes.push_back( 153 graph->nodes.push_back(
154 TaskGraph::Node(task, category, priority, dependencies)); 154 TaskGraph::Node(task, category, priority, dependencies));
155 } 155 }
156 156
157 void InsertNodesForRasterTask(TaskGraph* graph, 157 void InsertNodesForRasterTask(TaskGraph* graph,
158 RasterTask* raster_task, 158 DependencyTask* raster_task,
159 const ImageDecodeTask::Vector& decode_tasks, 159 const DependencyTask::Vector& decode_tasks,
160 size_t priority, 160 size_t priority,
161 bool use_gpu_rasterization, 161 bool use_gpu_rasterization,
162 bool high_priority) { 162 bool high_priority) {
163 size_t dependencies = 0u; 163 size_t dependencies = 0u;
164 164
165 // Determine the TaskCategory for raster tasks - if a task uses GPU, it 165 // Determine the TaskCategory for raster tasks - if a task uses GPU, it
166 // cannot run concurrently and is assigned 166 // cannot run concurrently and is assigned
167 // TASK_CATEGORY_NONCONCURRENT_FOREGROUND, regardless of its priority. 167 // TASK_CATEGORY_NONCONCURRENT_FOREGROUND, regardless of its priority.
168 // Otherwise its category is based on its priority. 168 // Otherwise its category is based on its priority.
169 TaskCategory raster_task_category; 169 TaskCategory raster_task_category;
170 if (use_gpu_rasterization) { 170 if (use_gpu_rasterization) {
171 raster_task_category = TASK_CATEGORY_NONCONCURRENT_FOREGROUND; 171 raster_task_category = TASK_CATEGORY_NONCONCURRENT_FOREGROUND;
172 } else { 172 } else {
173 raster_task_category = 173 raster_task_category =
174 high_priority ? TASK_CATEGORY_FOREGROUND : TASK_CATEGORY_BACKGROUND; 174 high_priority ? TASK_CATEGORY_FOREGROUND : TASK_CATEGORY_BACKGROUND;
175 } 175 }
176 176
177 // Determine the TaskCategory for decode tasks. This category is based on 177 // Determine the TaskCategory for decode tasks. This category is based on
178 // the priority of the raster task which depends on it. 178 // the priority of the raster task which depends on it.
179 TaskCategory decode_task_category = 179 TaskCategory decode_task_category =
180 high_priority ? TASK_CATEGORY_FOREGROUND : TASK_CATEGORY_BACKGROUND; 180 high_priority ? TASK_CATEGORY_FOREGROUND : TASK_CATEGORY_BACKGROUND;
181 181
182 // Insert image decode tasks. 182 // Insert image decode tasks.
183 for (ImageDecodeTask::Vector::const_iterator it = decode_tasks.begin(); 183 for (DependencyTask::Vector::const_iterator it = decode_tasks.begin();
184 it != decode_tasks.end(); ++it) { 184 it != decode_tasks.end(); ++it) {
185 ImageDecodeTask* decode_task = it->get(); 185 DependencyTask* decode_task = it->get();
186 186
187 // Skip if already decoded. 187 // Skip if already decoded.
188 if (decode_task->HasCompleted()) 188 if (decode_task->HasCompleted())
189 continue; 189 continue;
190 190
191 dependencies++; 191 dependencies++;
192 192
193 // Add decode task if it doesn't already exists in graph. 193 // Add decode task if it doesn't already exists in graph.
194 TaskGraph::Node::Vector::iterator decode_it = 194 TaskGraph::Node::Vector::iterator decode_it =
195 std::find_if(graph->nodes.begin(), graph->nodes.end(), 195 std::find_if(graph->nodes.begin(), graph->nodes.end(),
(...skipping 11 matching lines...) Expand all
207 InsertNodeForTask(graph, decode_task, decode_task_category, priority, 0u); 207 InsertNodeForTask(graph, decode_task, decode_task_category, priority, 0u);
208 } 208 }
209 209
210 graph->edges.push_back(TaskGraph::Edge(decode_task, raster_task)); 210 graph->edges.push_back(TaskGraph::Edge(decode_task, raster_task));
211 } 211 }
212 212
213 InsertNodeForTask(graph, raster_task, raster_task_category, priority, 213 InsertNodeForTask(graph, raster_task, raster_task_category, priority,
214 dependencies); 214 dependencies);
215 } 215 }
216 216
217 class TaskSetFinishedTaskImpl : public TileTask { 217 class TaskSetFinishedTaskImpl : public DependencyTask {
218 public: 218 public:
219 explicit TaskSetFinishedTaskImpl( 219 explicit TaskSetFinishedTaskImpl(
220 base::SequencedTaskRunner* task_runner, 220 base::SequencedTaskRunner* task_runner,
221 const base::Closure& on_task_set_finished_callback) 221 const base::Closure& on_task_set_finished_callback)
222 : task_runner_(task_runner), 222 : task_runner_(task_runner),
223 on_task_set_finished_callback_(on_task_set_finished_callback) {} 223 on_task_set_finished_callback_(on_task_set_finished_callback) {}
224 224
225 // Overridden from Task: 225 // Overridden from DependencyTask:
226 void ScheduleOnOriginThread(DependencyTaskClient* client) override {}
227 void CompleteOnOriginThread(DependencyTaskClient* client) override {}
226 void RunOnWorkerThread() override { 228 void RunOnWorkerThread() override {
227 TRACE_EVENT0("cc", "TaskSetFinishedTaskImpl::RunOnWorkerThread"); 229 TRACE_EVENT0("cc", "TaskSetFinishedTaskImpl::RunOnWorkerThread");
228 TaskSetFinished(); 230 TaskSetFinished();
229 } 231 }
230 232
231 // Overridden from TileTask:
232 void ScheduleOnOriginThread(TileTaskClient* client) override {}
233 void CompleteOnOriginThread(TileTaskClient* client) override {}
234
235 protected: 233 protected:
236 ~TaskSetFinishedTaskImpl() override {} 234 ~TaskSetFinishedTaskImpl() override {}
237 235
238 void TaskSetFinished() { 236 void TaskSetFinished() {
239 task_runner_->PostTask(FROM_HERE, on_task_set_finished_callback_); 237 task_runner_->PostTask(FROM_HERE, on_task_set_finished_callback_);
240 } 238 }
241 239
242 private: 240 private:
243 scoped_refptr<base::SequencedTaskRunner> task_runner_; 241 scoped_refptr<base::SequencedTaskRunner> task_runner_;
244 const base::Closure on_task_set_finished_callback_; 242 const base::Closure on_task_set_finished_callback_;
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after
729 727
730 // Track the number of dependents for each *_done task. 728 // Track the number of dependents for each *_done task.
731 size_t required_for_activate_count = 0; 729 size_t required_for_activate_count = 0;
732 size_t required_for_draw_count = 0; 730 size_t required_for_draw_count = 0;
733 size_t all_count = 0; 731 size_t all_count = 0;
734 732
735 size_t priority = kTileTaskPriorityBase; 733 size_t priority = kTileTaskPriorityBase;
736 734
737 graph_.Reset(); 735 graph_.Reset();
738 736
739 scoped_refptr<TileTask> required_for_activation_done_task = 737 scoped_refptr<DependencyTask> required_for_activation_done_task =
740 CreateTaskSetFinishedTask( 738 CreateTaskSetFinishedTask(
741 &TileManager::DidFinishRunningTileTasksRequiredForActivation); 739 &TileManager::DidFinishRunningTileTasksRequiredForActivation);
742 scoped_refptr<TileTask> required_for_draw_done_task = 740 scoped_refptr<DependencyTask> required_for_draw_done_task =
743 CreateTaskSetFinishedTask( 741 CreateTaskSetFinishedTask(
744 &TileManager::DidFinishRunningTileTasksRequiredForDraw); 742 &TileManager::DidFinishRunningTileTasksRequiredForDraw);
745 scoped_refptr<TileTask> all_done_task = 743 scoped_refptr<DependencyTask> all_done_task =
746 CreateTaskSetFinishedTask(&TileManager::DidFinishRunningAllTileTasks); 744 CreateTaskSetFinishedTask(&TileManager::DidFinishRunningAllTileTasks);
747 745
748 // Build a new task queue containing all task currently needed. Tasks 746 // Build a new task queue containing all task currently needed. Tasks
749 // are added in order of priority, highest priority task first. 747 // are added in order of priority, highest priority task first.
750 for (auto& prioritized_tile : tiles_that_need_to_be_rasterized) { 748 for (auto& prioritized_tile : tiles_that_need_to_be_rasterized) {
751 Tile* tile = prioritized_tile.tile(); 749 Tile* tile = prioritized_tile.tile();
752 750
753 DCHECK(tile->draw_info().requires_resource()); 751 DCHECK(tile->draw_info().requires_resource());
754 DCHECK(!tile->draw_info().resource_); 752 DCHECK(!tile->draw_info().resource_);
755 753
756 if (!tile->raster_task_) 754 if (!tile->raster_task_)
757 tile->raster_task_ = CreateRasterTask(prioritized_tile); 755 tile->raster_task_ = CreateRasterTask(prioritized_tile);
758 756
759 RasterTask* task = tile->raster_task_.get(); 757 DependencyTask* task = tile->raster_task_.get();
760 DCHECK(!task->HasCompleted()); 758 DCHECK(!task->HasCompleted());
761 759
762 if (tile->required_for_activation()) { 760 if (tile->required_for_activation()) {
763 required_for_activate_count++; 761 required_for_activate_count++;
764 graph_.edges.push_back( 762 graph_.edges.push_back(
765 TaskGraph::Edge(task, required_for_activation_done_task.get())); 763 TaskGraph::Edge(task, required_for_activation_done_task.get()));
766 } 764 }
767 if (tile->required_for_draw()) { 765 if (tile->required_for_draw()) {
768 required_for_draw_count++; 766 required_for_draw_count++;
769 graph_.edges.push_back( 767 graph_.edges.push_back(
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
811 std::move(required_for_activation_done_task); 809 std::move(required_for_activation_done_task);
812 required_for_draw_done_task_ = std::move(required_for_draw_done_task); 810 required_for_draw_done_task_ = std::move(required_for_draw_done_task);
813 all_done_task_ = std::move(all_done_task); 811 all_done_task_ = std::move(all_done_task);
814 812
815 did_check_for_completed_tasks_since_last_schedule_tasks_ = false; 813 did_check_for_completed_tasks_since_last_schedule_tasks_ = false;
816 814
817 TRACE_EVENT_ASYNC_STEP_INTO1("cc", "ScheduledTasks", this, "running", "state", 815 TRACE_EVENT_ASYNC_STEP_INTO1("cc", "ScheduledTasks", this, "running", "state",
818 ScheduledTasksStateAsValue()); 816 ScheduledTasksStateAsValue());
819 } 817 }
820 818
821 scoped_refptr<RasterTask> TileManager::CreateRasterTask( 819 scoped_refptr<DependencyTask> TileManager::CreateRasterTask(
822 const PrioritizedTile& prioritized_tile) { 820 const PrioritizedTile& prioritized_tile) {
823 Tile* tile = prioritized_tile.tile(); 821 Tile* tile = prioritized_tile.tile();
824 822
825 // Get the resource. 823 // Get the resource.
826 uint64_t resource_content_id = 0; 824 uint64_t resource_content_id = 0;
827 Resource* resource = nullptr; 825 Resource* resource = nullptr;
828 if (use_partial_raster_ && tile->invalidated_id()) { 826 if (use_partial_raster_ && tile->invalidated_id()) {
829 // TODO(danakj): For resources that are in use, we should still grab them 827 // TODO(danakj): For resources that are in use, we should still grab them
830 // and copy from them instead of rastering everything. crbug.com/492754 828 // and copy from them instead of rastering everything. crbug.com/492754
831 resource = 829 resource =
832 resource_pool_->TryAcquireResourceWithContentId(tile->invalidated_id()); 830 resource_pool_->TryAcquireResourceWithContentId(tile->invalidated_id());
833 } 831 }
834 if (resource) { 832 if (resource) {
835 resource_content_id = tile->invalidated_id(); 833 resource_content_id = tile->invalidated_id();
836 DCHECK_EQ(DetermineResourceFormat(tile), resource->format()); 834 DCHECK_EQ(DetermineResourceFormat(tile), resource->format());
837 } else { 835 } else {
838 resource = resource_pool_->AcquireResource(tile->desired_texture_size(), 836 resource = resource_pool_->AcquireResource(tile->desired_texture_size(),
839 DetermineResourceFormat(tile)); 837 DetermineResourceFormat(tile));
840 } 838 }
841 839
842 // For LOW_RESOLUTION tiles, we don't draw or predecode images. 840 // For LOW_RESOLUTION tiles, we don't draw or predecode images.
843 const bool include_images = 841 const bool include_images =
844 prioritized_tile.priority().resolution != LOW_RESOLUTION; 842 prioritized_tile.priority().resolution != LOW_RESOLUTION;
845 843
846 // Create and queue all image decode tasks that this tile depends on. 844 // Create and queue all image decode tasks that this tile depends on.
847 ImageDecodeTask::Vector decode_tasks; 845 DependencyTask::Vector decode_tasks;
848 std::vector<DrawImage>& images = scheduled_draw_images_[tile->id()]; 846 std::vector<DrawImage>& images = scheduled_draw_images_[tile->id()];
849 images.clear(); 847 images.clear();
850 if (include_images) { 848 if (include_images) {
851 prioritized_tile.raster_source()->GetDiscardableImagesInRect( 849 prioritized_tile.raster_source()->GetDiscardableImagesInRect(
852 tile->enclosing_layer_rect(), tile->contents_scale(), &images); 850 tile->enclosing_layer_rect(), tile->contents_scale(), &images);
853 } 851 }
854 852
855 for (auto it = images.begin(); it != images.end();) { 853 for (auto it = images.begin(); it != images.end();) {
856 scoped_refptr<ImageDecodeTask> task; 854 scoped_refptr<DependencyTask> task;
857 bool need_to_unref_when_finished = 855 bool need_to_unref_when_finished =
858 image_decode_controller_->GetTaskForImageAndRef( 856 image_decode_controller_->GetTaskForImageAndRef(
859 *it, prepare_tiles_count_, &task); 857 *it, prepare_tiles_count_, &task);
860 if (task) 858 if (task)
861 decode_tasks.push_back(task); 859 decode_tasks.push_back(task);
862 860
863 if (need_to_unref_when_finished) 861 if (need_to_unref_when_finished)
864 ++it; 862 ++it;
865 else 863 else
866 it = images.erase(it); 864 it = images.erase(it);
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
1120 state->SetBoolean("ready_to_activate", signals_.ready_to_activate); 1118 state->SetBoolean("ready_to_activate", signals_.ready_to_activate);
1121 state->SetBoolean("ready_to_draw", signals_.ready_to_draw); 1119 state->SetBoolean("ready_to_draw", signals_.ready_to_draw);
1122 state->SetBoolean("all_tile_tasks_completed", 1120 state->SetBoolean("all_tile_tasks_completed",
1123 signals_.all_tile_tasks_completed); 1121 signals_.all_tile_tasks_completed);
1124 state->EndDictionary(); 1122 state->EndDictionary();
1125 return std::move(state); 1123 return std::move(state);
1126 } 1124 }
1127 1125
1128 // Utility function that can be used to create a "Task set finished" task that 1126 // Utility function that can be used to create a "Task set finished" task that
1129 // posts |callback| to |task_runner| when run. 1127 // posts |callback| to |task_runner| when run.
1130 scoped_refptr<TileTask> TileManager::CreateTaskSetFinishedTask( 1128 scoped_refptr<DependencyTask> TileManager::CreateTaskSetFinishedTask(
1131 void (TileManager::*callback)()) { 1129 void (TileManager::*callback)()) {
1132 return make_scoped_refptr(new TaskSetFinishedTaskImpl( 1130 return make_scoped_refptr(new TaskSetFinishedTaskImpl(
1133 task_runner_.get(), 1131 task_runner_.get(),
1134 base::Bind(callback, task_set_finished_weak_ptr_factory_.GetWeakPtr()))); 1132 base::Bind(callback, task_set_finished_weak_ptr_factory_.GetWeakPtr())));
1135 } 1133 }
1136 1134
1137 TileManager::MemoryUsage::MemoryUsage() 1135 TileManager::MemoryUsage::MemoryUsage()
1138 : memory_bytes_(0), resource_count_(0) {} 1136 : memory_bytes_(0), resource_count_(0) {}
1139 1137
1140 TileManager::MemoryUsage::MemoryUsage(size_t memory_bytes, 1138 TileManager::MemoryUsage::MemoryUsage(size_t memory_bytes,
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
1204 void TileManager::Signals::reset() { 1202 void TileManager::Signals::reset() {
1205 ready_to_activate = false; 1203 ready_to_activate = false;
1206 did_notify_ready_to_activate = false; 1204 did_notify_ready_to_activate = false;
1207 ready_to_draw = false; 1205 ready_to_draw = false;
1208 did_notify_ready_to_draw = false; 1206 did_notify_ready_to_draw = false;
1209 all_tile_tasks_completed = false; 1207 all_tile_tasks_completed = false;
1210 did_notify_all_tile_tasks_completed = false; 1208 did_notify_all_tile_tasks_completed = false;
1211 } 1209 }
1212 1210
1213 } // namespace cc 1211 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698