Index: cc/layers/layer.h |
diff --git a/cc/layers/layer.h b/cc/layers/layer.h |
index ab897a8ac9914ab08085ab45aa8b1ea8fa4ababf..2b6de6514aba996af23d16f1dd9d5987cbc0238c 100644 |
--- a/cc/layers/layer.h |
+++ b/cc/layers/layer.h |
@@ -352,6 +352,7 @@ class CC_EXPORT Layer : public base::RefCounted<Layer>, |
// These methods typically need to be overwritten by derived classes. |
virtual bool DrawsContent() const; |
+ virtual int NumDescendantsThatDrawContent() const; |
virtual void SavePaintProperties(); |
// Returns true iff any resources were updated that need to be committed. |
virtual bool Update(ResourceUpdateQueue* queue, |
@@ -460,6 +461,12 @@ class CC_EXPORT Layer : public base::RefCounted<Layer>, |
void Set3dSortingContextId(int id); |
int sorting_context_id() const { return sorting_context_id_; } |
+ // Called when our number of Drawable Descendants changes |
danakj
2014/07/14 15:49:23
nit: s/D/d/g and add a .
awoloszyn
2014/07/14 19:38:33
Done.
|
+ void AddDrawableDescendants(int num); |
danakj
2014/07/14 15:49:23
Can these all be protected?
awoloszyn
2014/07/14 19:38:33
Done.
|
+ void RemoveDrawableDescendants(int num); |
+ |
+ void SetDrawsContent(bool draws_content); |
+ |
protected: |
friend class LayerImpl; |
friend class TreeSynchronizer; |
@@ -486,6 +493,9 @@ class CC_EXPORT Layer : public base::RefCounted<Layer>, |
// unused resources on the impl thread are returned before commit completes. |
void SetNextCommitWaitsForActivation(); |
+ // Will relcalculate whether or not we draw content and set draws_content_ |
+ // appropriately. |
+ virtual void UpdateDrawsContent(bool draws_content); |
void AddDependentNeedsPushProperties(); |
void RemoveDependentNeedsPushProperties(); |
bool parent_should_know_need_push_properties() const { |
@@ -579,6 +589,7 @@ class CC_EXPORT Layer : public base::RefCounted<Layer>, |
// transformed relative to this layer, defines the maximum scroll offset for |
// this layer. |
int scroll_clip_layer_id_; |
+ int num_descendants_that_draw_content_; |
bool should_scroll_on_main_thread_ : 1; |
bool have_wheel_event_handlers_ : 1; |
bool have_scroll_event_handlers_ : 1; |
@@ -587,6 +598,7 @@ class CC_EXPORT Layer : public base::RefCounted<Layer>, |
bool is_root_for_isolated_group_ : 1; |
bool is_container_for_fixed_position_layers_ : 1; |
bool is_drawable_ : 1; |
+ bool draws_content_ : 1; |
bool hide_layer_and_subtree_ : 1; |
bool masks_to_bounds_ : 1; |
bool contents_opaque_ : 1; |