Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 #ifndef CC_RESOURCES_RASTER_WORKER_POOL_H_ | 5 #ifndef CC_RESOURCES_RASTER_WORKER_POOL_H_ |
| 6 #define CC_RESOURCES_RASTER_WORKER_POOL_H_ | 6 #define CC_RESOURCES_RASTER_WORKER_POOL_H_ |
| 7 | 7 |
| 8 #include <deque> | 8 #include <deque> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 24 class Resource; | 24 class Resource; |
| 25 class ResourceProvider; | 25 class ResourceProvider; |
| 26 | 26 |
| 27 namespace internal { | 27 namespace internal { |
| 28 | 28 |
| 29 class WorkerPoolTask; | 29 class WorkerPoolTask; |
| 30 class RasterWorkerPoolTask; | 30 class RasterWorkerPoolTask; |
| 31 | 31 |
| 32 class CC_EXPORT WorkerPoolTaskClient { | 32 class CC_EXPORT WorkerPoolTaskClient { |
| 33 public: | 33 public: |
| 34 virtual void* AcquireBufferForRaster(RasterWorkerPoolTask* task, | 34 virtual SkCanvas* AcquireCanvasForRaster(RasterWorkerPoolTask* task) = 0; |
|
reveman
2014/02/11 02:00:44
I'd like to see this take a basic WorkerPoolTask*
alokp
2014/02/11 07:05:21
Sure. This can be easily done when you decide to a
| |
| 35 int* stride) = 0; | |
| 36 virtual void OnRasterCompleted(RasterWorkerPoolTask* task, | 35 virtual void OnRasterCompleted(RasterWorkerPoolTask* task, |
| 37 const PicturePileImpl::Analysis& analysis) = 0; | 36 const PicturePileImpl::Analysis& analysis) = 0; |
| 38 virtual void OnImageDecodeCompleted(WorkerPoolTask* task) = 0; | 37 virtual void OnImageDecodeCompleted(WorkerPoolTask* task) = 0; |
| 39 | 38 |
| 40 protected: | 39 protected: |
| 41 virtual ~WorkerPoolTaskClient() {} | 40 virtual ~WorkerPoolTaskClient() {} |
| 42 }; | 41 }; |
| 43 | 42 |
| 44 class CC_EXPORT WorkerPoolTask : public Task { | 43 class CC_EXPORT WorkerPoolTask : public Task { |
| 45 public: | 44 public: |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 211 RenderingStatsInstrumentation* rendering_stats, | 210 RenderingStatsInstrumentation* rendering_stats, |
| 212 const RasterTask::Reply& reply, | 211 const RasterTask::Reply& reply, |
| 213 Task::Set* dependencies); | 212 Task::Set* dependencies); |
| 214 | 213 |
| 215 static Task CreateImageDecodeTask( | 214 static Task CreateImageDecodeTask( |
| 216 SkPixelRef* pixel_ref, | 215 SkPixelRef* pixel_ref, |
| 217 int layer_id, | 216 int layer_id, |
| 218 RenderingStatsInstrumentation* rendering_stats, | 217 RenderingStatsInstrumentation* rendering_stats, |
| 219 const Task::Reply& reply); | 218 const Task::Reply& reply); |
| 220 | 219 |
| 220 // Overridden from internal::WorkerPoolTaskClient: | |
| 221 virtual SkCanvas* AcquireCanvasForRaster(internal::RasterWorkerPoolTask* task) | |
| 222 OVERRIDE; | |
| 223 virtual void OnRasterCompleted(internal::RasterWorkerPoolTask* task, | |
| 224 const PicturePileImpl::Analysis& analysis) | |
| 225 OVERRIDE; | |
| 226 | |
| 221 void SetClient(RasterWorkerPoolClient* client); | 227 void SetClient(RasterWorkerPoolClient* client); |
| 222 | 228 |
| 223 // Tells the worker pool to shutdown after canceling all previously | 229 // Tells the worker pool to shutdown after canceling all previously |
| 224 // scheduled tasks. Reply callbacks are still guaranteed to run. | 230 // scheduled tasks. Reply callbacks are still guaranteed to run. |
| 225 virtual void Shutdown(); | 231 virtual void Shutdown(); |
| 226 | 232 |
| 227 // Schedule running of raster tasks in |queue| and all dependencies. | 233 // Schedule running of raster tasks in |queue| and all dependencies. |
| 228 // Previously scheduled tasks that are no longer needed to run | 234 // Previously scheduled tasks that are no longer needed to run |
| 229 // raster tasks in |queue| will be canceled unless already running. | 235 // raster tasks in |queue| will be canceled unless already running. |
| 230 // Once scheduled, reply callbacks are guaranteed to run for all tasks | 236 // Once scheduled, reply callbacks are guaranteed to run for all tasks |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 317 | 323 |
| 318 scoped_refptr<internal::WorkerPoolTask> raster_finished_task_; | 324 scoped_refptr<internal::WorkerPoolTask> raster_finished_task_; |
| 319 scoped_refptr<internal::WorkerPoolTask> | 325 scoped_refptr<internal::WorkerPoolTask> |
| 320 raster_required_for_activation_finished_task_; | 326 raster_required_for_activation_finished_task_; |
| 321 base::WeakPtrFactory<RasterWorkerPool> weak_ptr_factory_; | 327 base::WeakPtrFactory<RasterWorkerPool> weak_ptr_factory_; |
| 322 }; | 328 }; |
| 323 | 329 |
| 324 } // namespace cc | 330 } // namespace cc |
| 325 | 331 |
| 326 #endif // CC_RESOURCES_RASTER_WORKER_POOL_H_ | 332 #endif // CC_RESOURCES_RASTER_WORKER_POOL_H_ |
| OLD | NEW |