diff options
Diffstat (limited to 'cc/surfaces/surface_aggregator.h')
-rw-r--r-- | cc/surfaces/surface_aggregator.h | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/cc/surfaces/surface_aggregator.h b/cc/surfaces/surface_aggregator.h index 17ea4c4..1ff4a45 100644 --- a/cc/surfaces/surface_aggregator.h +++ b/cc/surfaces/surface_aggregator.h @@ -29,7 +29,9 @@ class CC_SURFACES_EXPORT SurfaceAggregator { public: typedef base::hash_map<SurfaceId, int> SurfaceIndexMap; - SurfaceAggregator(SurfaceManager* manager, ResourceProvider* provider); + SurfaceAggregator(SurfaceManager* manager, + ResourceProvider* provider, + bool aggregate_only_damaged); ~SurfaceAggregator(); scoped_ptr<CompositorFrame> Aggregate(SurfaceId surface_id); @@ -60,10 +62,10 @@ class CC_SURFACES_EXPORT SurfaceAggregator { const gfx::Transform& target_transform, const ClipData& clip_rect, RenderPass* dest_pass); - void CopySharedQuadState(const SharedQuadState* source_sqs, - const gfx::Transform& target_transform, - const ClipData& clip_rect, - RenderPass* dest_render_pass); + SharedQuadState* CopySharedQuadState(const SharedQuadState* source_sqs, + const gfx::Transform& target_transform, + const ClipData& clip_rect, + RenderPass* dest_render_pass); void CopyQuadsToPass( const QuadList& source_quad_list, const SharedQuadStateList& source_shared_quad_state_list, @@ -72,7 +74,7 @@ class CC_SURFACES_EXPORT SurfaceAggregator { const ClipData& clip_rect, RenderPass* dest_pass, SurfaceId surface_id); - gfx::Rect ValidateAndCalculateDamageRect(SurfaceId surface_id); + gfx::Rect PrewalkTree(SurfaceId surface_id); void CopyPasses(const DelegatedFrameData* frame_data, Surface* surface); // Remove Surfaces that were referenced before but aren't currently @@ -92,6 +94,7 @@ class CC_SURFACES_EXPORT SurfaceAggregator { RenderPassIdAllocatorMap; RenderPassIdAllocatorMap render_pass_allocator_map_; int next_render_pass_id_; + const bool aggregate_only_damaged_; typedef base::hash_map<SurfaceId, int> SurfaceToResourceChildIdMap; SurfaceToResourceChildIdMap surface_id_to_resource_child_id_; @@ -116,6 +119,13 @@ class CC_SURFACES_EXPORT SurfaceAggregator { // This is the pass list for the aggregated frame. RenderPassList* dest_pass_list_; + // The root damage rect of the currently-aggregating frame. + gfx::Rect root_damage_rect_; + + // True if the frame that's currently being aggregated has copy requests. + // This is valid during Aggregate after PrewalkTree is called. + bool has_copy_requests_; + // Resource list for the aggregated frame. TransferableResourceArray* dest_resource_list_; |