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

Side by Side Diff: cc/resources/image_raster_worker_pool.cc

Issue 157293002: cc: Refactor WorkerPoolTaskClient::AcquireBufferForRaster (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: implement acquire/release/map/unmap Created 6 years, 10 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/resources/image_raster_worker_pool.h" 5 #include "cc/resources/image_raster_worker_pool.h"
6 6
7 #include "base/debug/trace_event.h" 7 #include "base/debug/trace_event.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "cc/debug/traced_value.h" 9 #include "cc/debug/traced_value.h"
10 #include "cc/resources/resource.h" 10 #include "cc/resources/resource.h"
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 task->WillComplete(); 123 task->WillComplete();
124 task->CompleteOnOriginThread(this); 124 task->CompleteOnOriginThread(this);
125 task->DidComplete(); 125 task->DidComplete();
126 126
127 task->RunReplyOnOriginThread(); 127 task->RunReplyOnOriginThread();
128 } 128 }
129 129
130 CheckForCompletedGpuRasterTasks(); 130 CheckForCompletedGpuRasterTasks();
131 } 131 }
132 132
133 void* ImageRasterWorkerPool::AcquireBufferForRaster( 133 SkCanvas* ImageRasterWorkerPool::AcquireCanvasForRaster(
134 internal::RasterWorkerPoolTask* task, 134 internal::RasterWorkerPoolTask* task) {
135 int* stride) { 135 if (task->use_gpu_rasterization())
136 // Acquire image for resource. 136 return RasterWorkerPool::AcquireCanvasForRaster(task);
137 resource_provider()->AcquireImage(task->resource()->id()); 137 return resource_provider()->MapImageRasterBuffer(task->resource()->id());
138
139 *stride = resource_provider()->GetImageStride(task->resource()->id());
140 return resource_provider()->MapImage(task->resource()->id());
141 } 138 }
142 139
143 void ImageRasterWorkerPool::OnRasterCompleted( 140 void ImageRasterWorkerPool::OnRasterCompleted(
144 internal::RasterWorkerPoolTask* task, 141 internal::RasterWorkerPoolTask* task,
145 const PicturePileImpl::Analysis& analysis) { 142 const PicturePileImpl::Analysis& analysis) {
146 resource_provider()->UnmapImage(task->resource()->id()); 143 if (task->use_gpu_rasterization()) {
144 RasterWorkerPool::OnRasterCompleted(task, analysis);
145 return;
146 }
147 resource_provider()->UnmapImageRasterBuffer(task->resource()->id());
147 } 148 }
148 149
149 void ImageRasterWorkerPool::OnImageDecodeCompleted( 150 void ImageRasterWorkerPool::OnImageDecodeCompleted(
150 internal::WorkerPoolTask* task) {} 151 internal::WorkerPoolTask* task) {}
151 152
152 void ImageRasterWorkerPool::OnRasterTasksFinished() { 153 void ImageRasterWorkerPool::OnRasterTasksFinished() {
153 DCHECK(raster_tasks_pending_); 154 DCHECK(raster_tasks_pending_);
154 raster_tasks_pending_ = false; 155 raster_tasks_pending_ = false;
155 TRACE_EVENT_ASYNC_END0("cc", "ScheduledTasks", this); 156 TRACE_EVENT_ASYNC_END0("cc", "ScheduledTasks", this);
156 client()->DidFinishRunningTasks(); 157 client()->DidFinishRunningTasks();
(...skipping 15 matching lines...) Expand all
172 scoped_ptr<base::Value> ImageRasterWorkerPool::StateAsValue() const { 173 scoped_ptr<base::Value> ImageRasterWorkerPool::StateAsValue() const {
173 scoped_ptr<base::DictionaryValue> state(new base::DictionaryValue); 174 scoped_ptr<base::DictionaryValue> state(new base::DictionaryValue);
174 175
175 state->SetBoolean("tasks_required_for_activation_pending", 176 state->SetBoolean("tasks_required_for_activation_pending",
176 raster_tasks_required_for_activation_pending_); 177 raster_tasks_required_for_activation_pending_);
177 state->Set("scheduled_state", ScheduledStateAsValue().release()); 178 state->Set("scheduled_state", ScheduledStateAsValue().release());
178 return state.PassAs<base::Value>(); 179 return state.PassAs<base::Value>();
179 } 180 }
180 181
181 } // namespace cc 182 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698