summaryrefslogtreecommitdiffstats
path: root/cc/output/compositor_frame_metadata.h
blob: a6fe2d4117afc0bab4e6757f0a4c60d613d232a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CC_OUTPUT_COMPOSITOR_FRAME_METADATA_H_
#define CC_OUTPUT_COMPOSITOR_FRAME_METADATA_H_

#include <vector>

#include "cc/base/cc_export.h"
#include "cc/output/viewport_selection_bound.h"
#include "ui/events/latency_info.h"
#include "ui/gfx/geometry/size_f.h"
#include "ui/gfx/geometry/vector2d_f.h"

namespace cc {

class CC_EXPORT CompositorFrameMetadata {
 public:
  CompositorFrameMetadata();
  ~CompositorFrameMetadata();

  // The device scale factor used to generate this compositor frame.
  float device_scale_factor;

  // Scroll offset and scale of the root layer. This can be used for tasks
  // like positioning windowed plugins.
  gfx::Vector2dF root_scroll_offset;
  float page_scale_factor;

  // These limits can be used together with the scroll/scale fields above to
  // determine if scrolling/scaling in a particular direction is possible.
  gfx::SizeF scrollable_viewport_size;
  gfx::SizeF root_layer_size;
  float min_page_scale_factor;
  float max_page_scale_factor;

  // Used to position the Android location top bar and page content, whose
  // precise position is computed by the renderer compositor.
  gfx::Vector2dF location_bar_offset;
  gfx::Vector2dF location_bar_content_translation;

  // Provides selection region updates relative to the current viewport. If the
  // selection is empty or otherwise unused, the bound types will indicate such.
  ViewportSelectionBound selection_start;
  ViewportSelectionBound selection_end;

  std::vector<ui::LatencyInfo> latency_info;

  // A set of SurfaceSequences that this frame satisfies (always in the same
  // namespace as the current Surface).
  std::vector<uint32_t> satisfies_sequences;
};

}  // namespace cc

#endif  // CC_OUTPUT_COMPOSITOR_FRAME_METADATA_H_