| Index: cc/resources/raster_worker_pool.cc
|
| diff --git a/cc/resources/raster_worker_pool.cc b/cc/resources/raster_worker_pool.cc
|
| index 25005887b2282d2bf64428fab2715843f4f6a557..925cf94b28afa01633d109f353bb7bd558c8babb 100644
|
| --- a/cc/resources/raster_worker_pool.cc
|
| +++ b/cc/resources/raster_worker_pool.cc
|
| @@ -69,19 +69,20 @@ class DisableLCDTextFilter : public SkDrawFilter {
|
|
|
| class RasterWorkerPoolTaskImpl : public internal::RasterWorkerPoolTask {
|
| public:
|
| - RasterWorkerPoolTaskImpl(const Resource* resource,
|
| - PicturePileImpl* picture_pile,
|
| - const gfx::Rect& content_rect,
|
| - float contents_scale,
|
| - RasterMode raster_mode,
|
| - TileResolution tile_resolution,
|
| - int layer_id,
|
| - const void* tile_id,
|
| - int source_frame_number,
|
| - RenderingStatsInstrumentation* rendering_stats,
|
| - const RasterWorkerPool::RasterTask::Reply& reply,
|
| - internal::WorkerPoolTask::Vector* dependencies,
|
| - ContextProvider* context_provider)
|
| + RasterWorkerPoolTaskImpl(
|
| + const Resource* resource,
|
| + PicturePileImpl* picture_pile,
|
| + const gfx::Rect& content_rect,
|
| + float contents_scale,
|
| + RasterMode raster_mode,
|
| + TileResolution tile_resolution,
|
| + int layer_id,
|
| + const void* tile_id,
|
| + int source_frame_number,
|
| + RenderingStatsInstrumentation* rendering_stats,
|
| + const base::Callback<void(const PicturePileImpl::Analysis&, bool)>& reply,
|
| + internal::WorkerPoolTask::Vector* dependencies,
|
| + ContextProvider* context_provider)
|
| : internal::RasterWorkerPoolTask(resource, dependencies),
|
| picture_pile_(picture_pile),
|
| content_rect_(content_rect),
|
| @@ -236,7 +237,7 @@ class RasterWorkerPoolTaskImpl : public internal::RasterWorkerPoolTask {
|
| const void* tile_id_;
|
| int source_frame_number_;
|
| RenderingStatsInstrumentation* rendering_stats_;
|
| - const RasterWorkerPool::RasterTask::Reply reply_;
|
| + const base::Callback<void(const PicturePileImpl::Analysis&, bool)> reply_;
|
| ContextProvider* context_provider_;
|
| SkCanvas* canvas_;
|
|
|
| @@ -245,10 +246,11 @@ class RasterWorkerPoolTaskImpl : public internal::RasterWorkerPoolTask {
|
|
|
| class ImageDecodeWorkerPoolTaskImpl : public internal::WorkerPoolTask {
|
| public:
|
| - ImageDecodeWorkerPoolTaskImpl(SkPixelRef* pixel_ref,
|
| - int layer_id,
|
| - RenderingStatsInstrumentation* rendering_stats,
|
| - const RasterWorkerPool::Task::Reply& reply)
|
| + ImageDecodeWorkerPoolTaskImpl(
|
| + SkPixelRef* pixel_ref,
|
| + int layer_id,
|
| + RenderingStatsInstrumentation* rendering_stats,
|
| + const base::Callback<void(bool was_canceled)>& reply)
|
| : pixel_ref_(skia::SharePtr(pixel_ref)),
|
| layer_id_(layer_id),
|
| rendering_stats_(rendering_stats),
|
| @@ -290,7 +292,7 @@ class ImageDecodeWorkerPoolTaskImpl : public internal::WorkerPoolTask {
|
| skia::RefPtr<SkPixelRef> pixel_ref_;
|
| int layer_id_;
|
| RenderingStatsInstrumentation* rendering_stats_;
|
| - const RasterWorkerPool::Task::Reply reply_;
|
| + const base::Callback<void(bool was_canceled)>& reply_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ImageDecodeWorkerPoolTaskImpl);
|
| };
|
| @@ -447,64 +449,27 @@ RasterWorkerPoolTask::~RasterWorkerPoolTask() {}
|
|
|
| } // namespace internal
|
|
|
| -RasterWorkerPool::Task::Set::Set() {}
|
| -
|
| -RasterWorkerPool::Task::Set::~Set() {}
|
| -
|
| -void RasterWorkerPool::Task::Set::Insert(const Task& task) {
|
| - DCHECK(!task.is_null());
|
| - tasks_.push_back(task.internal_);
|
| -}
|
| -
|
| -RasterWorkerPool::Task::Task() {}
|
| -
|
| -RasterWorkerPool::Task::Task(internal::WorkerPoolTask* internal)
|
| - : internal_(internal) {}
|
| -
|
| -RasterWorkerPool::Task::~Task() {}
|
| -
|
| -void RasterWorkerPool::Task::Reset() { internal_ = NULL; }
|
| -
|
| -RasterWorkerPool::RasterTask::Queue::QueuedTask::QueuedTask(
|
| - internal::RasterWorkerPoolTask* task,
|
| - bool required_for_activation)
|
| +RasterTaskQueue::Item::Item(internal::RasterWorkerPoolTask* task,
|
| + bool required_for_activation)
|
| : task(task), required_for_activation(required_for_activation) {}
|
|
|
| -RasterWorkerPool::RasterTask::Queue::QueuedTask::~QueuedTask() {}
|
| -
|
| -RasterWorkerPool::RasterTask::Queue::Queue()
|
| - : required_for_activation_count_(0u) {}
|
| +RasterTaskQueue::Item::~Item() {}
|
|
|
| -RasterWorkerPool::RasterTask::Queue::~Queue() {}
|
| +RasterTaskQueue::RasterTaskQueue() : required_for_activation_count(0u) {}
|
|
|
| -void RasterWorkerPool::RasterTask::Queue::Reset() {
|
| - tasks_.clear();
|
| - required_for_activation_count_ = 0u;
|
| -}
|
| +RasterTaskQueue::~RasterTaskQueue() {}
|
|
|
| -void RasterWorkerPool::RasterTask::Queue::Append(const RasterTask& task,
|
| - bool required_for_activation) {
|
| - DCHECK(!task.is_null());
|
| - tasks_.push_back(QueuedTask(task.internal_, required_for_activation));
|
| - required_for_activation_count_ += required_for_activation;
|
| +void RasterTaskQueue::Swap(RasterTaskQueue* other) {
|
| + items.swap(other->items);
|
| + std::swap(required_for_activation_count,
|
| + other->required_for_activation_count);
|
| }
|
|
|
| -void RasterWorkerPool::RasterTask::Queue::Swap(Queue* other) {
|
| - tasks_.swap(other->tasks_);
|
| - std::swap(required_for_activation_count_,
|
| - other->required_for_activation_count_);
|
| +void RasterTaskQueue::Reset() {
|
| + required_for_activation_count = 0u;
|
| + items.clear();
|
| }
|
|
|
| -RasterWorkerPool::RasterTask::RasterTask() {}
|
| -
|
| -RasterWorkerPool::RasterTask::RasterTask(
|
| - internal::RasterWorkerPoolTask* internal)
|
| - : internal_(internal) {}
|
| -
|
| -void RasterWorkerPool::RasterTask::Reset() { internal_ = NULL; }
|
| -
|
| -RasterWorkerPool::RasterTask::~RasterTask() {}
|
| -
|
| // This allows an external rasterize on-demand system to run raster tasks
|
| // with highest priority using the same task graph runner instance.
|
| unsigned RasterWorkerPool::kOnDemandRasterTaskPriority = 0u;
|
| @@ -549,7 +514,8 @@ internal::TaskGraphRunner* RasterWorkerPool::GetTaskGraphRunner() {
|
| }
|
|
|
| // static
|
| -RasterWorkerPool::RasterTask RasterWorkerPool::CreateRasterTask(
|
| +scoped_refptr<internal::RasterWorkerPoolTask>
|
| +RasterWorkerPool::CreateRasterTask(
|
| const Resource* resource,
|
| PicturePileImpl* picture_pile,
|
| const gfx::Rect& content_rect,
|
| @@ -560,31 +526,31 @@ RasterWorkerPool::RasterTask RasterWorkerPool::CreateRasterTask(
|
| const void* tile_id,
|
| int source_frame_number,
|
| RenderingStatsInstrumentation* rendering_stats,
|
| - const RasterTask::Reply& reply,
|
| - Task::Set* dependencies,
|
| + const base::Callback<void(const PicturePileImpl::Analysis&, bool)>& reply,
|
| + internal::WorkerPoolTask::Vector* dependencies,
|
| ContextProvider* context_provider) {
|
| - return RasterTask(new RasterWorkerPoolTaskImpl(resource,
|
| - picture_pile,
|
| - content_rect,
|
| - contents_scale,
|
| - raster_mode,
|
| - tile_resolution,
|
| - layer_id,
|
| - tile_id,
|
| - source_frame_number,
|
| - rendering_stats,
|
| - reply,
|
| - &dependencies->tasks_,
|
| - context_provider));
|
| + return make_scoped_refptr(new RasterWorkerPoolTaskImpl(resource,
|
| + picture_pile,
|
| + content_rect,
|
| + contents_scale,
|
| + raster_mode,
|
| + tile_resolution,
|
| + layer_id,
|
| + tile_id,
|
| + source_frame_number,
|
| + rendering_stats,
|
| + reply,
|
| + dependencies,
|
| + context_provider));
|
| }
|
|
|
| // static
|
| -RasterWorkerPool::Task RasterWorkerPool::CreateImageDecodeTask(
|
| +scoped_refptr<internal::WorkerPoolTask> RasterWorkerPool::CreateImageDecodeTask(
|
| SkPixelRef* pixel_ref,
|
| int layer_id,
|
| RenderingStatsInstrumentation* rendering_stats,
|
| - const Task::Reply& reply) {
|
| - return Task(new ImageDecodeWorkerPoolTaskImpl(
|
| + const base::Callback<void(bool was_canceled)>& reply) {
|
| + return make_scoped_refptr(new ImageDecodeWorkerPoolTaskImpl(
|
| pixel_ref, layer_id, rendering_stats, reply));
|
| }
|
|
|
|
|