Index: cc/raster/zero_copy_tile_task_worker_pool.cc |
diff --git a/cc/raster/zero_copy_tile_task_worker_pool.cc b/cc/raster/zero_copy_tile_task_worker_pool.cc |
index 2e3dca1407f3358802bbd612554bf5f22ea46c4d..0a6e80e7d1c0880f7476c5a3b5f384a6f4981b8c 100644 |
--- a/cc/raster/zero_copy_tile_task_worker_pool.cc |
+++ b/cc/raster/zero_copy_tile_task_worker_pool.cc |
@@ -65,21 +65,24 @@ class RasterBufferImpl : public RasterBuffer { |
scoped_ptr<TileTaskWorkerPool> ZeroCopyTileTaskWorkerPool::Create( |
base::SequencedTaskRunner* task_runner, |
TaskGraphRunner* task_graph_runner, |
- ResourceProvider* resource_provider) { |
+ ResourceProvider* resource_provider, |
+ bool use_rgba_4444_texture_format) { |
return make_scoped_ptr<TileTaskWorkerPool>(new ZeroCopyTileTaskWorkerPool( |
- task_runner, task_graph_runner, resource_provider)); |
+ task_runner, task_graph_runner, resource_provider, |
+ use_rgba_4444_texture_format)); |
} |
ZeroCopyTileTaskWorkerPool::ZeroCopyTileTaskWorkerPool( |
base::SequencedTaskRunner* task_runner, |
TaskGraphRunner* task_graph_runner, |
- ResourceProvider* resource_provider) |
+ ResourceProvider* resource_provider, |
+ bool use_rgba_4444_texture_format) |
: task_runner_(task_runner), |
task_graph_runner_(task_graph_runner), |
namespace_token_(task_graph_runner->GetNamespaceToken()), |
resource_provider_(resource_provider), |
- task_set_finished_weak_ptr_factory_(this) { |
-} |
+ use_rgba_4444_texture_format_(use_rgba_4444_texture_format), |
+ task_set_finished_weak_ptr_factory_(this) {} |
ZeroCopyTileTaskWorkerPool::~ZeroCopyTileTaskWorkerPool() { |
} |
@@ -179,12 +182,17 @@ void ZeroCopyTileTaskWorkerPool::CheckForCompletedTasks() { |
completed_tasks_.clear(); |
} |
-ResourceFormat ZeroCopyTileTaskWorkerPool::GetResourceFormat() const { |
- return resource_provider_->memory_efficient_texture_format(); |
+ResourceFormat ZeroCopyTileTaskWorkerPool::GetResourceFormat( |
+ bool must_support_alpha) const { |
+ return use_rgba_4444_texture_format_ |
+ ? RGBA_4444 |
+ : resource_provider_->best_texture_format(); |
} |
-bool ZeroCopyTileTaskWorkerPool::GetResourceRequiresSwizzle() const { |
- return !PlatformColor::SameComponentOrder(GetResourceFormat()); |
+bool ZeroCopyTileTaskWorkerPool::GetResourceRequiresSwizzle( |
+ bool must_support_alpha) const { |
+ return !PlatformColor::SameComponentOrder( |
+ GetResourceFormat(must_support_alpha)); |
} |
scoped_ptr<RasterBuffer> ZeroCopyTileTaskWorkerPool::AcquireBufferForRaster( |