| 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 #include "cc/resources/raster_worker_pool.h" | 5 #include "cc/resources/raster_worker_pool.h" |
| 6 | 6 |
| 7 #include "base/json/json_writer.h" | 7 #include "base/json/json_writer.h" |
| 8 #include "base/metrics/histogram.h" | 8 #include "base/metrics/histogram.h" |
| 9 #include "base/values.h" | 9 #include "base/values.h" |
| 10 #include "cc/debug/devtools_instrumentation.h" | 10 #include "cc/debug/devtools_instrumentation.h" |
| (...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 249 | 249 |
| 250 DISALLOW_COPY_AND_ASSIGN(RasterWorkerPoolTaskImpl); | 250 DISALLOW_COPY_AND_ASSIGN(RasterWorkerPoolTaskImpl); |
| 251 }; | 251 }; |
| 252 | 252 |
| 253 class ImageDecodeWorkerPoolTaskImpl : public internal::WorkerPoolTask { | 253 class ImageDecodeWorkerPoolTaskImpl : public internal::WorkerPoolTask { |
| 254 public: | 254 public: |
| 255 ImageDecodeWorkerPoolTaskImpl(skia::LazyPixelRef* pixel_ref, | 255 ImageDecodeWorkerPoolTaskImpl(skia::LazyPixelRef* pixel_ref, |
| 256 int layer_id, | 256 int layer_id, |
| 257 RenderingStatsInstrumentation* rendering_stats, | 257 RenderingStatsInstrumentation* rendering_stats, |
| 258 const RasterWorkerPool::Task::Reply& reply) | 258 const RasterWorkerPool::Task::Reply& reply) |
| 259 : pixel_ref_(pixel_ref), | 259 : pixel_ref_(skia::SharePtr(pixel_ref)), |
| 260 layer_id_(layer_id), | 260 layer_id_(layer_id), |
| 261 rendering_stats_(rendering_stats), | 261 rendering_stats_(rendering_stats), |
| 262 reply_(reply) {} | 262 reply_(reply) {} |
| 263 | 263 |
| 264 // Overridden from internal::WorkerPoolTask: | 264 // Overridden from internal::WorkerPoolTask: |
| 265 virtual void RunOnWorkerThread(unsigned thread_index) OVERRIDE { | 265 virtual void RunOnWorkerThread(unsigned thread_index) OVERRIDE { |
| 266 TRACE_EVENT0("cc", "ImageDecodeWorkerPoolTaskImpl::RunOnWorkerThread"); | 266 TRACE_EVENT0("cc", "ImageDecodeWorkerPoolTaskImpl::RunOnWorkerThread"); |
| 267 devtools_instrumentation::ScopedImageDecodeTask image_decode_task( | 267 devtools_instrumentation::ScopedImageDecodeTask image_decode_task( |
| 268 pixel_ref_); | 268 pixel_ref_.get()); |
| 269 pixel_ref_->Decode(); | 269 pixel_ref_->Decode(); |
| 270 } | 270 } |
| 271 virtual void CompleteOnOriginThread() OVERRIDE { | 271 virtual void CompleteOnOriginThread() OVERRIDE { |
| 272 reply_.Run(!HasFinishedRunning()); | 272 reply_.Run(!HasFinishedRunning()); |
| 273 } | 273 } |
| 274 | 274 |
| 275 protected: | 275 protected: |
| 276 virtual ~ImageDecodeWorkerPoolTaskImpl() {} | 276 virtual ~ImageDecodeWorkerPoolTaskImpl() {} |
| 277 | 277 |
| 278 private: | 278 private: |
| 279 skia::LazyPixelRef* pixel_ref_; | 279 skia::RefPtr<skia::LazyPixelRef> pixel_ref_; |
| 280 int layer_id_; | 280 int layer_id_; |
| 281 RenderingStatsInstrumentation* rendering_stats_; | 281 RenderingStatsInstrumentation* rendering_stats_; |
| 282 const RasterWorkerPool::Task::Reply reply_; | 282 const RasterWorkerPool::Task::Reply reply_; |
| 283 | 283 |
| 284 DISALLOW_COPY_AND_ASSIGN(ImageDecodeWorkerPoolTaskImpl); | 284 DISALLOW_COPY_AND_ASSIGN(ImageDecodeWorkerPoolTaskImpl); |
| 285 }; | 285 }; |
| 286 | 286 |
| 287 class RasterFinishedWorkerPoolTaskImpl : public internal::WorkerPoolTask { | 287 class RasterFinishedWorkerPoolTaskImpl : public internal::WorkerPoolTask { |
| 288 public: | 288 public: |
| 289 typedef base::Callback<void(const internal::WorkerPoolTask* source)> | 289 typedef base::Callback<void(const internal::WorkerPoolTask* source)> |
| (...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 586 | 586 |
| 587 internal::GraphNode* decode_node = CreateGraphNodeForTask( | 587 internal::GraphNode* decode_node = CreateGraphNodeForTask( |
| 588 decode_task, priority, graph); | 588 decode_task, priority, graph); |
| 589 decode_node->add_dependent(raster_node); | 589 decode_node->add_dependent(raster_node); |
| 590 } | 590 } |
| 591 | 591 |
| 592 return raster_node; | 592 return raster_node; |
| 593 } | 593 } |
| 594 | 594 |
| 595 } // namespace cc | 595 } // namespace cc |
| OLD | NEW |