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

Unified Diff: cc/trees/damage_tracker.cc

Issue 2015343002: cc: Move DamageTracker filter handling to MapRect. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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 | « no previous file | cc/trees/damage_tracker_unittest.cc » ('j') | cc/trees/damage_tracker_unittest.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/damage_tracker.cc
diff --git a/cc/trees/damage_tracker.cc b/cc/trees/damage_tracker.cc
index 95e545f2a3873604cb178d1958495392a4289ac9..c861025f1ee3bcb1cd91f40e354af8040e1efb5c 100644
--- a/cc/trees/damage_tracker.cc
+++ b/cc/trees/damage_tracker.cc
@@ -29,23 +29,17 @@ DamageTracker::DamageTracker()
DamageTracker::~DamageTracker() {}
-static inline void ExpandRectWithFilters(gfx::Rect* rect,
- const FilterOperations& filters) {
- int top, right, bottom, left;
- filters.GetOutsets(&top, &right, &bottom, &left);
- rect->Inset(-left, -top, -right, -bottom);
-}
-
static inline void ExpandDamageRectInsideRectWithFilters(
gfx::Rect* damage_rect,
const gfx::Rect& pre_filter_rect,
const FilterOperations& filters) {
- gfx::Rect expanded_damage_rect = *damage_rect;
- ExpandRectWithFilters(&expanded_damage_rect, filters);
- gfx::Rect filter_rect = pre_filter_rect;
- ExpandRectWithFilters(&filter_rect, filters);
+ // Compute the pixels in the background of the surface that could be affected
+ // by the damage in the content below.
+ gfx::Rect expanded_damage_rect = filters.MapRect(*damage_rect, SkMatrix::I());
+
+ // Restrict it to the rectangle in which the background filter is shown.
+ expanded_damage_rect.Intersect(pre_filter_rect);
- expanded_damage_rect.Intersect(filter_rect);
damage_rect->Union(expanded_damage_rect);
}
@@ -144,8 +138,8 @@ void DamageTracker::UpdateDamageTrackingState(
damage_rect_for_this_update = damage_from_active_layers;
damage_rect_for_this_update.Union(damage_from_surface_mask);
damage_rect_for_this_update.Union(damage_from_leftover_rects);
-
- ExpandRectWithFilters(&damage_rect_for_this_update, filters);
+ damage_rect_for_this_update =
+ filters.MapRect(damage_rect_for_this_update, SkMatrix::I());
}
// Damage accumulates until we are notified that we actually did draw on that
« no previous file with comments | « no previous file | cc/trees/damage_tracker_unittest.cc » ('j') | cc/trees/damage_tracker_unittest.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698