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 "cc/base/cc_export.h"
9#include "ui/events/latency_info.h"
10#include "ui/gfx/size_f.h"
11#include "ui/gfx/vector2d_f.h"
12
13namespace cc {
14
15class CC_EXPORT CompositorFrameMetadata {
16 public:
17  CompositorFrameMetadata();
18  ~CompositorFrameMetadata();
19
20  // The device scale factor used to generate this compositor frame.
21  float device_scale_factor;
22
23  // Scroll offset and scale of the root layer. This can be used for tasks
24  // like positioning windowed plugins.
25  gfx::Vector2dF root_scroll_offset;
26  float page_scale_factor;
27
28  // These limits can be used together with the scroll/scale fields above to
29  // determine if scrolling/scaling in a particular direction is possible.
30  gfx::SizeF viewport_size;
31  gfx::SizeF root_layer_size;
32  float min_page_scale_factor;
33  float max_page_scale_factor;
34
35  // Used to position the Android location top bar and page content, whose
36  // precise position is computed by the renderer compositor.
37  gfx::Vector2dF location_bar_offset;
38  gfx::Vector2dF location_bar_content_translation;
39  float overdraw_bottom_height;
40
41  ui::LatencyInfo latency_info;
42};
43
44}  // namespace cc
45
46#endif  // CC_OUTPUT_COMPOSITOR_FRAME_METADATA_H_
47