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

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: updated unittests 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 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 task->CompleteOnOriginThread(this); 148 task->CompleteOnOriginThread(this);
149 task->DidComplete(); 149 task->DidComplete();
150 150
151 task->RunReplyOnOriginThread(); 151 task->RunReplyOnOriginThread();
152 } 152 }
153 completed_tasks_.clear(); 153 completed_tasks_.clear();
154 154
155 CheckForCompletedGpuRasterTasks(); 155 CheckForCompletedGpuRasterTasks();
156 } 156 }
157 157
158 void* ImageRasterWorkerPool::AcquireBufferForRaster( 158 SkCanvas* ImageRasterWorkerPool::AcquireCanvasForRaster(
159 internal::RasterWorkerPoolTask* task, 159 internal::RasterWorkerPoolTask* task) {
160 int* stride) { 160 if (task->use_gpu_rasterization())
161 // Acquire image for resource. 161 return resource_provider()->MapDirectRasterBuffer(task->resource()->id());
162 resource_provider()->AcquireImage(task->resource()->id());
163 162
164 *stride = resource_provider()->GetImageStride(task->resource()->id()); 163 return resource_provider()->MapImageRasterBuffer(task->resource()->id());
165 return resource_provider()->MapImage(task->resource()->id());
166 } 164 }
167 165
168 void ImageRasterWorkerPool::OnRasterCompleted( 166 void ImageRasterWorkerPool::OnRasterCompleted(
169 internal::RasterWorkerPoolTask* task, 167 internal::RasterWorkerPoolTask* task,
170 const PicturePileImpl::Analysis& analysis) { 168 const PicturePileImpl::Analysis& analysis) {
171 resource_provider()->UnmapImage(task->resource()->id()); 169 if (task->use_gpu_rasterization()) {
170 resource_provider()->UnmapDirectRasterBuffer(task->resource()->id());
171 return;
172 }
173 resource_provider()->UnmapImageRasterBuffer(task->resource()->id());
172 } 174 }
173 175
174 void ImageRasterWorkerPool::OnImageDecodeCompleted( 176 void ImageRasterWorkerPool::OnImageDecodeCompleted(
175 internal::WorkerPoolTask* task) {} 177 internal::WorkerPoolTask* task) {}
176 178
177 void ImageRasterWorkerPool::OnRasterTasksFinished() { 179 void ImageRasterWorkerPool::OnRasterTasksFinished() {
178 DCHECK(raster_tasks_pending_); 180 DCHECK(raster_tasks_pending_);
179 raster_tasks_pending_ = false; 181 raster_tasks_pending_ = false;
180 TRACE_EVENT_ASYNC_END0("cc", "ScheduledTasks", this); 182 TRACE_EVENT_ASYNC_END0("cc", "ScheduledTasks", this);
181 client()->DidFinishRunningTasks(); 183 client()->DidFinishRunningTasks();
(...skipping 15 matching lines...) Expand all
197 scoped_ptr<base::Value> ImageRasterWorkerPool::StateAsValue() const { 199 scoped_ptr<base::Value> ImageRasterWorkerPool::StateAsValue() const {
198 scoped_ptr<base::DictionaryValue> state(new base::DictionaryValue); 200 scoped_ptr<base::DictionaryValue> state(new base::DictionaryValue);
199 201
200 state->SetBoolean("tasks_required_for_activation_pending", 202 state->SetBoolean("tasks_required_for_activation_pending",
201 raster_tasks_required_for_activation_pending_); 203 raster_tasks_required_for_activation_pending_);
202 state->Set("scheduled_state", ScheduledStateAsValue().release()); 204 state->Set("scheduled_state", ScheduledStateAsValue().release());
203 return state.PassAs<base::Value>(); 205 return state.PassAs<base::Value>();
204 } 206 }
205 207
206 } // namespace cc 208 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698