Index: cc/layers/render_surface_impl.cc |
diff --git a/cc/layers/render_surface_impl.cc b/cc/layers/render_surface_impl.cc |
index e1330f14f8a4eeaad0c737c83bd5f0872296fff7..6a3c46c98c2ce2576bd8976de668bae2f3785fce 100644 |
--- a/cc/layers/render_surface_impl.cc |
+++ b/cc/layers/render_surface_impl.cc |
@@ -153,6 +153,10 @@ bool RenderSurfaceImpl::HasCopyRequest() const { |
return OwningEffectNode()->has_copy_request; |
} |
+bool RenderSurfaceImpl::ForceRenderSurface() const { |
+ return OwningEffectNode()->force_render_surface; |
+} |
+ |
int RenderSurfaceImpl::TransformTreeIndex() const { |
return OwningEffectNode()->transform_id; |
} |
@@ -202,7 +206,7 @@ gfx::Rect RenderSurfaceImpl::CalculateExpandedClipForFilters( |
} |
gfx::Rect RenderSurfaceImpl::CalculateClippedAccumulatedContentRect() { |
- if (HasCopyRequest() || !is_clipped()) |
+ if (ForceRenderSurface() || HasCopyRequest() || !is_clipped()) |
return accumulated_content_rect(); |
if (accumulated_content_rect().IsEmpty()) |
@@ -337,6 +341,10 @@ void RenderSurfaceImpl::NoteAncestorPropertyChanged() { |
ancestor_property_changed_ = true; |
} |
+bool RenderSurfaceImpl::ContributingRenderSurfacePropertyChanged() const { |
+ return damage_tracker_->has_property_change_on_contributing_render_surface(); |
+} |
+ |
gfx::Rect RenderSurfaceImpl::GetDamageRect() const { |
gfx::Rect damage_rect; |
bool is_valid_rect = damage_tracker_->GetDamageRectIfValid(&damage_rect); |
@@ -362,6 +370,9 @@ std::unique_ptr<RenderPass> RenderSurfaceImpl::CreateRenderPass() { |
draw_properties_.screen_space_transform); |
pass->filters = Filters(); |
pass->background_filters = BackgroundFilters(); |
+ pass->force_render_surface = ForceRenderSurface(); |
+ pass->has_property_change_on_contributing_render_surface = |
+ ContributingRenderSurfacePropertyChanged(); |
return pass; |
} |