// 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_DEBUG_RECT_HISTORY_H_ #define CC_TREES_DEBUG_RECT_HISTORY_H_ #include <memory> #include <vector> #include "cc/cc_export.h" #include "cc/input/touch_action.h" #include "cc/layers/layer_collections.h" #include "ui/gfx/geometry/rect.h" namespace cc { class LayerImpl; class LayerTreeDebugState; class LayerTreeImpl; class HeadsUpDisplayLayerImpl; // There are various types of debug rects: // // - Paint rects (update rects): regions of a layer that needed to be // re-uploaded to the texture resource; in most cases implying that they had to // be repainted, too. // // - Property-changed rects: enclosing bounds of layers that cause changes to // the screen even if the layer did not change internally. (For example, if the // layer's opacity or position changes.) // // - Surface damage rects: the aggregate damage on a target surface that is // caused by all layers and surfaces that contribute to it. This includes (1) // paint rects, (2) property- changed rects, and (3) newly exposed areas. // // - Screen space rects: this is the region the contents occupy in screen space. // // - Layout shift rects: regions of an animation frame that were shifted while // the page is loading content. enum class DebugRectType { … }; struct DebugRect { … }; // This class maintains a history of rects of various types that can be used // for debugging purposes. The overhead of collecting rects is performed only if // the appropriate LayerTreeSettings are enabled. class CC_EXPORT DebugRectHistory { … }; } // namespace cc #endif // CC_TREES_DEBUG_RECT_HISTORY_H_