Chromium Code Reviews| Index: cc/resources/raster_worker_pool.cc |
| diff --git a/cc/resources/raster_worker_pool.cc b/cc/resources/raster_worker_pool.cc |
| index aced03fcec6c8eb3c5e413d5213f8b635e3b756a..21c588c3311ee28cc1fa18b9f2813ccf074a44d3 100644 |
| --- a/cc/resources/raster_worker_pool.cc |
| +++ b/cc/resources/raster_worker_pool.cc |
| @@ -48,7 +48,8 @@ class RasterWorkerPoolTaskImpl : public internal::RasterWorkerPoolTask { |
| int source_frame_number, |
| RenderingStatsInstrumentation* rendering_stats, |
| const RasterWorkerPool::RasterTask::Reply& reply, |
| - TaskVector* dependencies) |
| + TaskVector* dependencies, |
| + bool use_16bit_tiles) |
| : internal::RasterWorkerPoolTask(resource, dependencies), |
| picture_pile_(picture_pile), |
| content_rect_(content_rect), |
| @@ -60,7 +61,8 @@ class RasterWorkerPoolTaskImpl : public internal::RasterWorkerPoolTask { |
| tile_id_(tile_id), |
| source_frame_number_(source_frame_number), |
| rendering_stats_(rendering_stats), |
| - reply_(reply) {} |
| + reply_(reply), |
| + use_16bit_tiles_(use_16bit_tiles) {} |
| void RunAnalysisOnThread(unsigned thread_index) { |
| TRACE_EVENT1("cc", |
| @@ -111,7 +113,6 @@ class RasterWorkerPoolTaskImpl : public internal::RasterWorkerPoolTask { |
| picture_pile_->GetCloneForDrawingOnThread(thread_index); |
| SkCanvas canvas(device); |
| - |
| skia::RefPtr<SkDrawFilter> draw_filter; |
| switch (raster_mode_) { |
| case LOW_QUALITY_RASTER_MODE: |
| @@ -149,6 +150,14 @@ class RasterWorkerPoolTaskImpl : public internal::RasterWorkerPoolTask { |
| picture_clone->RasterToBitmap( |
| &canvas, content_rect_, contents_scale_, NULL); |
| } |
| + |
| + if (use_16bit_tiles_) { |
| + const SkBitmap& bitmap_32 = device->accessBitmap(true); |
| + SkBitmap bitmap_16; |
| + bitmap_32.copyTo(&bitmap_16, SkBitmap::kARGB_4444_Config); |
| + canvas.drawBitmap(bitmap_16, 0, 0); |
|
Sami
2013/08/08 10:11:01
|canvas| is still a 32-bit bitmap so this is reall
kaanb
2013/08/08 17:25:05
Let me check with Skia folks if they'd be willing
bsalomon
2013/08/08 18:40:15
Hi, What's the intent here? Are you trying to go f
|
| + } |
| + |
| return true; |
| } |
| @@ -189,6 +198,7 @@ class RasterWorkerPoolTaskImpl : public internal::RasterWorkerPoolTask { |
| int source_frame_number_; |
| RenderingStatsInstrumentation* rendering_stats_; |
| const RasterWorkerPool::RasterTask::Reply reply_; |
| + bool use_16bit_tiles_; |
| DISALLOW_COPY_AND_ASSIGN(RasterWorkerPoolTaskImpl); |
| }; |
| @@ -379,7 +389,8 @@ RasterWorkerPool::RasterTask RasterWorkerPool::CreateRasterTask( |
| int source_frame_number, |
| RenderingStatsInstrumentation* rendering_stats, |
| const RasterTask::Reply& reply, |
| - Task::Set* dependencies) { |
| + Task::Set* dependencies, |
| + bool use_16bit_tiles) { |
| return RasterTask( |
| new RasterWorkerPoolTaskImpl(resource, |
| picture_pile, |
| @@ -393,7 +404,8 @@ RasterWorkerPool::RasterTask RasterWorkerPool::CreateRasterTask( |
| source_frame_number, |
| rendering_stats, |
| reply, |
| - &dependencies->tasks_)); |
| + &dependencies->tasks_, |
| + use_16bit_tiles)); |
| } |
| // static |