Index: cc/trees/occlusion_tracker.cc |
diff --git a/cc/trees/occlusion_tracker.cc b/cc/trees/occlusion_tracker.cc |
index 09519af99f9e4fcc1ca605097908cf317b23fa97..93822ba68bd028703ee2abb2a9a92ac9a3010bfd 100644 |
--- a/cc/trees/occlusion_tracker.cc |
+++ b/cc/trees/occlusion_tracker.cc |
@@ -48,6 +48,14 @@ Occlusion OcclusionTracker::GetCurrentOcclusionForContributingSurface( |
second_last.occlusion_from_inside_target); |
} |
+const RenderSurfaceImpl* |
+OcclusionTracker::OcclusionSurfaceForContributingSurface() const { |
+ // A contributing surface doesn't get occluded by things inside its own |
+ // surface, so only things outside the surface can occlude it. That occlusion |
+ // is found just below the top of the stack (if it exists). |
+ return (stack_.size() < 2) ? nullptr : stack_[stack_.size() - 2].target; |
+} |
+ |
void OcclusionTracker::EnterLayer(const LayerIteratorPosition& layer_iterator) { |
LayerImpl* render_target = layer_iterator.target_render_surface_layer; |