Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(714)

Unified Diff: cc/trees/damage_tracker.h

Issue 2814273003: cc: Make DamageTracker use the effect tree and layer list (Closed)
Patch Set: Rebase Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/layers/effect_tree_layer_list_iterator.cc ('k') | cc/trees/damage_tracker.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/damage_tracker.h
diff --git a/cc/trees/damage_tracker.h b/cc/trees/damage_tracker.h
index 6ddc504dafa0e68550ed3e382ed0bff26ffacb95..c6d2446bda5b8a6b2a67d98e4877476ce95aa6df 100644
--- a/cc/trees/damage_tracker.h
+++ b/cc/trees/damage_tracker.h
@@ -21,6 +21,7 @@ namespace cc {
class FilterOperations;
class LayerImpl;
+class LayerTreeImpl;
class RenderSurfaceImpl;
// Computes the region where pixels have actually changed on a
@@ -31,15 +32,11 @@ class CC_EXPORT DamageTracker {
static std::unique_ptr<DamageTracker> Create();
~DamageTracker();
+ static void UpdateDamageTracking(LayerTreeImpl* layer_tree_impl,
+ const LayerImplList& render_surface_list);
+
void DidDrawDamagedArea() { current_damage_ = DamageAccumulator(); }
void AddDamageNextUpdate(const gfx::Rect& dmg) { current_damage_.Union(dmg); }
- void UpdateDamageTrackingState(
- const LayerImplList& layer_list,
- const RenderSurfaceImpl* target_surface,
- bool target_surface_property_changed_only_from_descendant,
- const gfx::Rect& target_surface_content_rect,
- LayerImpl* target_surface_mask_layer,
- const FilterOperations& filters);
bool GetDamageRectIfValid(gfx::Rect* rect);
@@ -84,21 +81,17 @@ class CC_EXPORT DamageTracker {
int bottom_ = 0;
};
- DamageAccumulator TrackDamageFromActiveLayers(
- const LayerImplList& layer_list,
- const RenderSurfaceImpl* target_surface);
DamageAccumulator TrackDamageFromSurfaceMask(
LayerImpl* target_surface_mask_layer);
DamageAccumulator TrackDamageFromLeftoverRects();
- void PrepareRectHistoryForUpdate();
- // These helper functions are used only in TrackDamageFromActiveLayers().
- void ExtendDamageForLayer(LayerImpl* layer, DamageAccumulator* target_damage);
- void ExtendDamageForRenderSurface(RenderSurfaceImpl* render_surface,
- DamageAccumulator* target_damage);
+ // These helper functions are used only during UpdateDamageTracking().
+ void PrepareForUpdate();
+ void AccumulateDamageFromLayer(LayerImpl* layer);
+ void AccumulateDamageFromRenderSurface(RenderSurfaceImpl* render_surface);
+ void ComputeSurfaceDamage(RenderSurfaceImpl* render_surface);
void ExpandDamageInsideRectWithFilters(const gfx::Rect& pre_filter_rect,
- const FilterOperations& filters,
- DamageAccumulator* damage);
+ const FilterOperations& filters);
struct LayerRectMapData {
LayerRectMapData() : layer_id_(0), mailboxId_(0) {}
@@ -147,6 +140,9 @@ class CC_EXPORT DamageTracker {
unsigned int mailboxId_;
DamageAccumulator current_damage_;
+ // Damage accumulated since the last call to PrepareForUpdate().
+ DamageAccumulator damage_for_this_update_;
+
DISALLOW_COPY_AND_ASSIGN(DamageTracker);
};
« no previous file with comments | « cc/layers/effect_tree_layer_list_iterator.cc ('k') | cc/trees/damage_tracker.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698