| Index: cc/resources/one_copy_raster_worker_pool.h
|
| diff --git a/cc/resources/one_copy_raster_worker_pool.h b/cc/resources/one_copy_raster_worker_pool.h
|
| index 7372fb7ae47f5b3b63cb7d8e8d4cbf9a559c7e8a..1dc102f81a8c980fb0155b8a8e30da95ddcfa682 100644
|
| --- a/cc/resources/one_copy_raster_worker_pool.h
|
| +++ b/cc/resources/one_copy_raster_worker_pool.h
|
| @@ -23,7 +23,7 @@ class TracedValue;
|
|
|
| namespace cc {
|
| class ResourcePool;
|
| -class ResourceProvider;
|
| +class ScopedResource;
|
|
|
| typedef int64 CopySequenceNumber;
|
|
|
| @@ -54,12 +54,16 @@ class CC_EXPORT OneCopyRasterWorkerPool : public RasterWorkerPool,
|
| const Resource* resource) override;
|
| void ReleaseBufferForRaster(scoped_ptr<RasterBuffer> buffer) override;
|
|
|
| - // Schedule copy of |src| resource to |dst| resource. Returns a non-zero
|
| - // sequence number for this copy operation.
|
| - CopySequenceNumber ScheduleCopyOnWorkerThread(
|
| + // Playback raster source and schedule copy of |src| resource to |dst|
|
| + // resource. Returns a non-zero sequence number for this copy operation.
|
| + CopySequenceNumber PlaybackAndScheduleCopyOnWorkerThread(
|
| scoped_ptr<ResourceProvider::ScopedWriteLockGpuMemoryBuffer> write_lock,
|
| - const Resource* src,
|
| - const Resource* dst);
|
| + scoped_ptr<ScopedResource> src,
|
| + const Resource* dst,
|
| + const RasterSource* raster_source,
|
| + const gfx::Rect& rect,
|
| + float scale,
|
| + RenderingStatsInstrumentation* stats);
|
|
|
| // Issues copy operations until |sequence| has been processed. This will
|
| // return immediately if |sequence| has already been processed.
|
| @@ -78,18 +82,21 @@ class CC_EXPORT OneCopyRasterWorkerPool : public RasterWorkerPool,
|
|
|
| CopyOperation(
|
| scoped_ptr<ResourceProvider::ScopedWriteLockGpuMemoryBuffer> write_lock,
|
| - ResourceProvider::ResourceId src,
|
| - ResourceProvider::ResourceId dst);
|
| + scoped_ptr<ScopedResource> src,
|
| + const Resource* dst);
|
| ~CopyOperation();
|
|
|
| scoped_ptr<ResourceProvider::ScopedWriteLockGpuMemoryBuffer> write_lock;
|
| - ResourceProvider::ResourceId src;
|
| - ResourceProvider::ResourceId dst;
|
| + scoped_ptr<ScopedResource> src;
|
| + const Resource* dst;
|
| };
|
|
|
| void OnRasterFinished(TaskSet task_set);
|
| void AdvanceLastFlushedCopyTo(CopySequenceNumber sequence);
|
| void IssueCopyOperations(int64 count);
|
| + void ScheduleCheckForCompletedCopyOperationsWithLockAcquired(
|
| + bool wait_if_needed);
|
| + void CheckForCompletedCopyOperations(bool wait_if_needed);
|
| scoped_refptr<base::debug::ConvertableToTraceFormat> StateAsValue() const;
|
| void StagingStateAsValueInto(base::debug::TracedValue* staging_state) const;
|
|
|
| @@ -112,8 +119,14 @@ class CC_EXPORT OneCopyRasterWorkerPool : public RasterWorkerPool,
|
|
|
| base::Lock lock_;
|
| // |lock_| must be acquired when accessing the following members.
|
| + base::ConditionVariable copy_operation_count_cv_;
|
| + size_t scheduled_copy_operation_count_;
|
| + size_t issued_copy_operation_count_;
|
| CopyOperation::Deque pending_copy_operations_;
|
| CopySequenceNumber next_copy_operation_sequence_;
|
| + bool check_for_completed_copy_operations_pending_;
|
| + base::TimeTicks last_check_for_completed_copy_operations_time_;
|
| + bool shutdown_;
|
|
|
| base::WeakPtrFactory<OneCopyRasterWorkerPool> weak_ptr_factory_;
|
| // "raster finished" tasks need their own factory as they need to be
|
|
|