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

Unified Diff: cc/layers/render_surface_impl.cc

Issue 2632463005: cc: Ensure that large damage doesn't register as "frame has no damage" (Closed)
Patch Set: update Created 3 years, 11 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/render_surface_impl.h ('k') | cc/trees/damage_tracker.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/layers/render_surface_impl.cc
diff --git a/cc/layers/render_surface_impl.cc b/cc/layers/render_surface_impl.cc
index 1a3845b6cb10e208584aeaac65c3e1931e7394d4..25e571e587ec159fddfdd8e1e0233e2c6e04bc9f 100644
--- a/cc/layers/render_surface_impl.cc
+++ b/cc/layers/render_surface_impl.cc
@@ -337,6 +337,14 @@ void RenderSurfaceImpl::NoteAncestorPropertyChanged() {
ancestor_property_changed_ = true;
}
+gfx::Rect RenderSurfaceImpl::GetDamageRect() {
+ gfx::Rect damage_rect;
+ bool is_valid_rect = damage_tracker_->GetDamageRectIfValid(&damage_rect);
+ if (!is_valid_rect)
+ return content_rect();
+ return damage_rect;
+}
+
void RenderSurfaceImpl::ResetPropertyChangedFlags() {
surface_property_changed_ = false;
ancestor_property_changed_ = false;
@@ -352,9 +360,9 @@ int RenderSurfaceImpl::GetRenderPassId() {
void RenderSurfaceImpl::AppendRenderPasses(RenderPassSink* pass_sink) {
std::unique_ptr<RenderPass> pass = RenderPass::Create(layer_list_.size());
- pass->SetNew(id(), content_rect(),
- gfx::IntersectRects(content_rect(),
- damage_tracker_->current_damage_rect()),
+ gfx::Rect damage_rect = GetDamageRect();
+ damage_rect.Intersect(content_rect());
+ pass->SetNew(id(), content_rect(), damage_rect,
draw_properties_.screen_space_transform);
pass->filters = Filters();
pass->background_filters = BackgroundFilters();
« no previous file with comments | « cc/layers/render_surface_impl.h ('k') | cc/trees/damage_tracker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698