Index: cc/layers/picture_layer_impl.cc |
diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc |
index 5012061c28551ab22bfccde0fce4d8b88c0867ce..9d3c97cb175c920a0f22e1e1fd905b5596af0242 100644 |
--- a/cc/layers/picture_layer_impl.cc |
+++ b/cc/layers/picture_layer_impl.cc |
@@ -1380,4 +1380,27 @@ bool PictureLayerImpl::HasValidTilePriorities() const { |
is_drawn_render_surface_layer_list_member(); |
} |
+void PictureLayerImpl::InvalidateRegionForImages( |
+ const std::unordered_set<ImageId>& images_to_invalidate) { |
+ TRACE_EVENT_BEGIN0("cc", "PictureLayerImpl::InvalidateRegionForImages"); |
+ |
+ InvalidationRegion image_invalidation; |
+ for (auto image_id : images_to_invalidate) |
+ image_invalidation.Union(raster_source_->GetRectForImage(image_id)); |
+ Region invalidation; |
+ image_invalidation.Swap(&invalidation); |
+ |
+ if (invalidation.IsEmpty()) { |
+ TRACE_EVENT_END1("cc", "PictureLayerImpl::InvalidateRegionForImages", |
+ "Invalidation", invalidation.ToString()); |
+ return; |
+ } |
+ |
+ invalidation_.Union(invalidation); |
+ tilings_->UpdateTilingsForImplSideInvalidation(invalidation); |
+ SetNeedsPushProperties(); |
+ TRACE_EVENT_END1("cc", "PictureLayerImpl::InvalidateRegionForImages", |
+ "Invalidation", invalidation.ToString()); |
+} |
+ |
} // namespace cc |