// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CC_TREES_OCCLUSION_TRACKER_H_ #define CC_TREES_OCCLUSION_TRACKER_H_ #include <vector> #include "base/memory/raw_ptr_exclusion.h" #include "cc/base/simple_enclosed_region.h" #include "cc/cc_export.h" #include "cc/layers/effect_tree_layer_list_iterator.h" #include "cc/trees/occlusion.h" #include "ui/gfx/geometry/rect.h" namespace cc { class LayerImpl; class Region; class RenderSurfaceImpl; // This class is used to track occlusion of layers while traversing them in a // front-to-back order. As each layer is visited, one of the methods in this // class is called to notify it about the current target surface. Then, // occlusion in the content space of the current layer may be queried, via // Occlusion from GetCurrentOcclusionForLayer(). If the current layer owns a // RenderSurfaceImpl, then occlusion on that RenderSurfaceImpl may also be // queried via surfaceOccluded() and surfaceUnoccludedContentRect(). Finally, // once finished with the layer, occlusion behind the layer should be marked by // calling MarkOccludedBehindLayer(). class CC_EXPORT OcclusionTracker { … }; } // namespace cc #endif // CC_TREES_OCCLUSION_TRACKER_H_