Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / cc / resources / image_raster_worker_pool.h
index d22e238..8bd3c51 100644 (file)
@@ -15,45 +15,47 @@ class CC_EXPORT ImageRasterWorkerPool : public RasterWorkerPool {
 
   static scoped_ptr<RasterWorkerPool> Create(
       ResourceProvider* resource_provider,
-      ContextProvider* context_provider,
-      unsigned texture_target) {
-    return make_scoped_ptr<RasterWorkerPool>(new ImageRasterWorkerPool(
-        resource_provider, context_provider, texture_target));
-  }
+      unsigned texture_target);
 
   // Overridden from RasterWorkerPool:
   virtual void ScheduleTasks(RasterTask::Queue* queue) OVERRIDE;
   virtual unsigned GetResourceTarget() const OVERRIDE;
   virtual ResourceFormat GetResourceFormat() const OVERRIDE;
-  virtual void OnRasterTasksFinished() OVERRIDE;
-  virtual void OnRasterTasksRequiredForActivationFinished() OVERRIDE;
+  virtual void CheckForCompletedTasks() OVERRIDE;
+
+  // Overridden from internal::WorkerPoolTaskClient:
+  virtual SkCanvas* AcquireCanvasForRaster(internal::RasterWorkerPoolTask* task)
+      OVERRIDE;
+  virtual void OnRasterCompleted(internal::RasterWorkerPoolTask* task,
+                                 const PicturePileImpl::Analysis& analysis)
+      OVERRIDE;
+  virtual void OnImageDecodeCompleted(internal::WorkerPoolTask* task) OVERRIDE {
+  }
 
- private:
-  ImageRasterWorkerPool(ResourceProvider* resource_provider,
-                        ContextProvider* context_provider,
+ protected:
+  ImageRasterWorkerPool(internal::TaskGraphRunner* task_graph_runner,
+                        ResourceProvider* resource_provider,
                         unsigned texture_target);
 
-  void OnRasterTaskCompleted(scoped_refptr<internal::RasterWorkerPoolTask> task,
-                             bool was_canceled);
+ private:
+  // Overridden from RasterWorkerPool:
+  virtual void OnRasterTasksFinished() OVERRIDE;
+  virtual void OnRasterTasksRequiredForActivationFinished() OVERRIDE;
 
   scoped_ptr<base::Value> StateAsValue() const;
 
-  static void CreateGraphNodeForImageTask(
-      internal::WorkerPoolTask* image_task,
-      const internal::Task::Vector& decode_tasks,
-      unsigned priority,
-      bool is_required_for_activation,
-      internal::GraphNode* raster_required_for_activation_finished_node,
-      internal::GraphNode* raster_finished_node,
-      TaskGraph* graph);
-
   const unsigned texture_target_;
 
-  TaskMap image_tasks_;
+  RasterTask::Queue raster_tasks_;
 
   bool raster_tasks_pending_;
   bool raster_tasks_required_for_activation_pending_;
 
+  // Task graph used when scheduling tasks and vector used to gather
+  // completed tasks.
+  internal::TaskGraph graph_;
+  internal::Task::Vector completed_tasks_;
+
   DISALLOW_COPY_AND_ASSIGN(ImageRasterWorkerPool);
 };