1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CC_OUTPUT_COMPOSITOR_FRAME_METADATA_H_
6 #define CC_OUTPUT_COMPOSITOR_FRAME_METADATA_H_
10 #include "cc/base/cc_export.h"
11 #include "cc/output/viewport_selection_bound.h"
12 #include "ui/events/latency_info.h"
13 #include "ui/gfx/geometry/size_f.h"
14 #include "ui/gfx/geometry/vector2d_f.h"
18 class CC_EXPORT CompositorFrameMetadata
{
20 CompositorFrameMetadata();
21 ~CompositorFrameMetadata();
23 // The device scale factor used to generate this compositor frame.
24 float device_scale_factor
;
26 // Scroll offset and scale of the root layer. This can be used for tasks
27 // like positioning windowed plugins.
28 gfx::Vector2dF root_scroll_offset
;
29 float page_scale_factor
;
31 // These limits can be used together with the scroll/scale fields above to
32 // determine if scrolling/scaling in a particular direction is possible.
33 gfx::SizeF scrollable_viewport_size
;
34 gfx::SizeF root_layer_size
;
35 float min_page_scale_factor
;
36 float max_page_scale_factor
;
37 bool root_overflow_x_hidden
;
38 bool root_overflow_y_hidden
;
40 // Used to position the Android location top bar and page content, whose
41 // precise position is computed by the renderer compositor.
42 gfx::Vector2dF location_bar_offset
;
43 gfx::Vector2dF location_bar_content_translation
;
45 // Provides selection region updates relative to the current viewport. If the
46 // selection is empty or otherwise unused, the bound types will indicate such.
47 ViewportSelection selection
;
49 std::vector
<ui::LatencyInfo
> latency_info
;
51 // A set of SurfaceSequences that this frame satisfies (always in the same
52 // namespace as the current Surface).
53 std::vector
<uint32_t> satisfies_sequences
;
58 #endif // CC_OUTPUT_COMPOSITOR_FRAME_METADATA_H_