Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
viewport_metrics.cc
Go to the documentation of this file.
1// Copyright 2013 The Flutter 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
6
8
9namespace flutter {
10
12
13ViewportMetrics::ViewportMetrics(double p_device_pixel_ratio,
14 double p_physical_width,
15 double p_physical_height,
16 double p_physical_touch_slop,
17 size_t p_display_id)
18 : device_pixel_ratio(p_device_pixel_ratio),
19 physical_width(p_physical_width),
20 physical_height(p_physical_height),
21 physical_min_width_constraint(p_physical_width),
22 physical_max_width_constraint(p_physical_width),
23 physical_min_height_constraint(p_physical_height),
24 physical_max_height_constraint(p_physical_height),
25 physical_touch_slop(p_physical_touch_slop),
26 display_id(p_display_id) {}
28 double p_device_pixel_ratio,
29 double p_physical_width,
30 double p_physical_height,
31 double p_physical_min_width_constraint,
32 double p_physical_max_width_constraint,
33 double p_physical_min_height_constraint,
34 double p_physical_max_height_constraint,
35 double p_physical_padding_top,
36 double p_physical_padding_right,
37 double p_physical_padding_bottom,
38 double p_physical_padding_left,
39 double p_physical_view_inset_top,
40 double p_physical_view_inset_right,
41 double p_physical_view_inset_bottom,
42 double p_physical_view_inset_left,
43 double p_physical_system_gesture_inset_top,
44 double p_physical_system_gesture_inset_right,
45 double p_physical_system_gesture_inset_bottom,
46 double p_physical_system_gesture_inset_left,
47 double p_physical_touch_slop,
48 const std::vector<double>& p_physical_display_features_bounds,
49 const std::vector<int>& p_physical_display_features_type,
50 const std::vector<int>& p_physical_display_features_state,
51 size_t p_display_id,
52 double p_physical_display_corner_radius_top_left,
53 double p_physical_display_corner_radius_top_right,
54 double p_physical_display_corner_radius_bottom_right,
55 double p_physical_display_corner_radius_bottom_left)
56 : device_pixel_ratio(p_device_pixel_ratio),
57 physical_width(p_physical_width),
58 physical_height(p_physical_height),
59 physical_min_width_constraint(p_physical_min_width_constraint),
60 physical_max_width_constraint(p_physical_max_width_constraint),
61 physical_min_height_constraint(p_physical_min_height_constraint),
62 physical_max_height_constraint(p_physical_max_height_constraint),
63 physical_padding_top(p_physical_padding_top),
64 physical_padding_right(p_physical_padding_right),
65 physical_padding_bottom(p_physical_padding_bottom),
66 physical_padding_left(p_physical_padding_left),
67 physical_view_inset_top(p_physical_view_inset_top),
68 physical_view_inset_right(p_physical_view_inset_right),
69 physical_view_inset_bottom(p_physical_view_inset_bottom),
70 physical_view_inset_left(p_physical_view_inset_left),
71 physical_system_gesture_inset_top(p_physical_system_gesture_inset_top),
72 physical_system_gesture_inset_right(
73 p_physical_system_gesture_inset_right),
74 physical_system_gesture_inset_bottom(
75 p_physical_system_gesture_inset_bottom),
76 physical_system_gesture_inset_left(p_physical_system_gesture_inset_left),
77 physical_touch_slop(p_physical_touch_slop),
78 physical_display_features_bounds(p_physical_display_features_bounds),
79 physical_display_features_type(p_physical_display_features_type),
80 physical_display_features_state(p_physical_display_features_state),
81 display_id(p_display_id),
82 physical_display_corner_radius_top_left(
83 p_physical_display_corner_radius_top_left),
84 physical_display_corner_radius_top_right(
85 p_physical_display_corner_radius_top_right),
86 physical_display_corner_radius_bottom_right(
87 p_physical_display_corner_radius_bottom_right),
88 physical_display_corner_radius_bottom_left(
89 p_physical_display_corner_radius_bottom_left) {}
90
91bool operator==(const ViewportMetrics& a, const ViewportMetrics& b) {
92 return a.device_pixel_ratio == b.device_pixel_ratio &&
93 a.physical_width == b.physical_width &&
94 a.physical_height == b.physical_height &&
95 a.physical_min_width_constraint == b.physical_min_width_constraint &&
96 a.physical_max_width_constraint == b.physical_max_width_constraint &&
97 a.physical_min_height_constraint == b.physical_min_height_constraint &&
98 a.physical_max_height_constraint == b.physical_max_height_constraint &&
99 a.physical_padding_top == b.physical_padding_top &&
100 a.physical_padding_right == b.physical_padding_right &&
101 a.physical_padding_bottom == b.physical_padding_bottom &&
102 a.physical_padding_left == b.physical_padding_left &&
103 a.physical_view_inset_top == b.physical_view_inset_top &&
104 a.physical_view_inset_right == b.physical_view_inset_right &&
105 a.physical_view_inset_bottom == b.physical_view_inset_bottom &&
106 a.physical_view_inset_left == b.physical_view_inset_left &&
108 b.physical_system_gesture_inset_top &&
110 b.physical_system_gesture_inset_right &&
112 b.physical_system_gesture_inset_bottom &&
114 b.physical_system_gesture_inset_left &&
115 a.physical_touch_slop == b.physical_touch_slop &&
117 b.physical_display_features_bounds &&
118 a.physical_display_features_type == b.physical_display_features_type &&
120 b.physical_display_features_state &&
121 a.display_id == b.display_id &&
123 b.physical_display_corner_radius_top_left &&
125 b.physical_display_corner_radius_top_right &&
127 b.physical_display_corner_radius_bottom_right &&
129 b.physical_display_corner_radius_bottom_left;
130}
131
132std::ostream& operator<<(std::ostream& os, const ViewportMetrics& a) {
133 os << "DPR: " << a.device_pixel_ratio << " " << "Size: [" << a.physical_width
134 << "W " << a.physical_height << "H] " << "Padding: ["
135 << a.physical_padding_top << "T " << a.physical_padding_right << "R "
136 << a.physical_padding_bottom << "B " << a.physical_padding_left << "L] "
137 << "View Constraints: [" << a.physical_min_width_constraint << "-"
141 << "Insets: [" << a.physical_view_inset_top << "T "
143 << "B " << a.physical_view_inset_left << "L] " << "Gesture Insets: ["
148 << "Display Features: " << a.physical_display_features_type.size() << " "
149 << "Display ID: " << a.display_id << " "
150 << "Corner Radii: [" << a.physical_display_corner_radius_top_left << "TL "
154 return os;
155}
156
157} // namespace flutter
std::ostream & operator<<(std::ostream &os, const ViewportMetrics &a)
bool operator==(const ViewportMetrics &a, const ViewportMetrics &b)
double physical_display_corner_radius_bottom_right
double physical_display_corner_radius_bottom_left
std::vector< int > physical_display_features_type
std::vector< double > physical_display_features_bounds
double physical_display_corner_radius_top_right
std::vector< int > physical_display_features_state