• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #ifndef CC_OUTPUT_COMPOSITOR_FRAME_METADATA_H_
6 #define CC_OUTPUT_COMPOSITOR_FRAME_METADATA_H_
7 
8 #include <vector>
9 
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"
15 
16 namespace cc {
17 
18 class CC_EXPORT CompositorFrameMetadata {
19  public:
20   CompositorFrameMetadata();
21   ~CompositorFrameMetadata();
22 
23   // The device scale factor used to generate this compositor frame.
24   float device_scale_factor;
25 
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;
30 
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 
38   // Used to position the Android location top bar and page content, whose
39   // precise position is computed by the renderer compositor.
40   gfx::Vector2dF location_bar_offset;
41   gfx::Vector2dF location_bar_content_translation;
42 
43   // Provides selection region updates relative to the current viewport. If the
44   // selection is empty or otherwise unused, the bound types will indicate such.
45   ViewportSelectionBound selection_start;
46   ViewportSelectionBound selection_end;
47 
48   std::vector<ui::LatencyInfo> latency_info;
49 };
50 
51 }  // namespace cc
52 
53 #endif  // CC_OUTPUT_COMPOSITOR_FRAME_METADATA_H_
54