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

Unified Diff: cc/resources/image_copy_raster_worker_pool.cc

Issue 454843002: cc: Do bitmap conversion for RasterBuffer in the worker thread. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix. Created 6 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: cc/resources/image_copy_raster_worker_pool.cc
diff --git a/cc/resources/image_copy_raster_worker_pool.cc b/cc/resources/image_copy_raster_worker_pool.cc
index 2a9b7f1eaac087729cb005978b5df888e9dbc888..8220f28dc5d1005ff8c4534aa9adf1adb87632bd 100644
--- a/cc/resources/image_copy_raster_worker_pool.cc
+++ b/cc/resources/image_copy_raster_worker_pool.cc
@@ -166,20 +166,22 @@ void ImageCopyRasterWorkerPool::CheckForCompletedTasks() {
FlushCopies();
}
-SkCanvas* ImageCopyRasterWorkerPool::AcquireCanvasForRaster(RasterTask* task) {
+RasterBuffer* ImageCopyRasterWorkerPool::AcquireBufferForRaster(
+ RasterTask* task) {
DCHECK_EQ(task->resource()->format(), resource_pool_->resource_format());
scoped_ptr<ScopedResource> resource(
resource_pool_->AcquireResource(task->resource()->size()));
- SkCanvas* canvas = resource_provider_->MapImageRasterBuffer(resource->id());
+ RasterBuffer* raster_buffer =
+ resource_provider_->AcquireImageRasterBuffer(resource->id());
DCHECK(std::find_if(raster_task_states_.begin(),
raster_task_states_.end(),
RasterTaskState::TaskComparator(task)) ==
raster_task_states_.end());
raster_task_states_.push_back(RasterTaskState(task, resource.release()));
- return canvas;
+ return raster_buffer;
}
-void ImageCopyRasterWorkerPool::ReleaseCanvasForRaster(RasterTask* task) {
+void ImageCopyRasterWorkerPool::ReleaseBufferForRaster(RasterTask* task) {
RasterTaskState::Vector::iterator it =
std::find_if(raster_task_states_.begin(),
raster_task_states_.end(),
@@ -190,7 +192,7 @@ void ImageCopyRasterWorkerPool::ReleaseCanvasForRaster(RasterTask* task) {
raster_task_states_.pop_back();
bool content_has_changed =
- resource_provider_->UnmapImageRasterBuffer(resource->id());
+ resource_provider_->ReleaseImageRasterBuffer(resource->id());
// |content_has_changed| can be false as result of task being canceled or
// task implementation deciding not to modify bitmap (ie. analysis of raster

Powered by Google App Engine
This is Rietveld 408576698