Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(131)

Side by Side Diff: ash/display/display_info.h

Issue 161413002: Revert of Read compositor VSync information from platform, when possible (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ash/display/display_controller.cc ('k') | ash/display/display_info.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef ASH_DISPLAY_DISPLAY_INFO_H_ 5 #ifndef ASH_DISPLAY_DISPLAY_INFO_H_
6 #define ASH_DISPLAY_DISPLAY_INFO_H_ 6 #define ASH_DISPLAY_DISPLAY_INFO_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "ash/ash_export.h" 11 #include "ash/ash_export.h"
12 #include "ui/gfx/display.h" 12 #include "ui/gfx/display.h"
13 #include "ui/gfx/insets.h" 13 #include "ui/gfx/insets.h"
14 #include "ui/gfx/rect.h" 14 #include "ui/gfx/rect.h"
15 15
16 namespace ash { 16 namespace ash {
17 namespace internal { 17 namespace internal {
18 18
19 // A struct that represents the display's mode info. 19 // A struct that represents the display's resolution and
20 struct ASH_EXPORT DisplayMode { 20 // interlaced info.
21 DisplayMode(); 21 struct ASH_EXPORT Resolution {
22 DisplayMode(const gfx::Size& size, 22 Resolution(const gfx::Size& size, bool interlaced);
23 float refresh_rate,
24 bool interlaced,
25 bool native);
26 23
27 gfx::Size size; // Physical pixel size of the display. 24 gfx::Size size;
28 float refresh_rate; // Refresh rate of the display, in Hz. 25 bool interlaced;
29 bool interlaced; // True if mode is interlaced.
30 bool native; // True if mode is native mode of the display.
31 }; 26 };
32 27
33 // DisplayInfo contains metadata for each display. This is used to 28 // DisplayInfo contains metadata for each display. This is used to
34 // create |gfx::Display| as well as to maintain extra infomation 29 // create |gfx::Display| as well as to maintain extra infomation
35 // to manage displays in ash environment. 30 // to manage displays in ash environment.
36 // This class is intentionally made copiable. 31 // This class is intentionally made copiable.
37 class ASH_EXPORT DisplayInfo { 32 class ASH_EXPORT DisplayInfo {
38 public: 33 public:
39 // Creates a DisplayInfo from string spec. 100+200-1440x800 creates display 34 // Creates a DisplayInfo from string spec. 100+200-1440x800 creates display
40 // whose size is 1440x800 at the location (100, 200) in host coordinates. 35 // whose size is 1440x800 at the location (100, 200) in host coordinates.
41 // The format is 36 // The format is
42 // 37 //
43 // [origin-]widthxheight[*device_scale_factor][#resolutions list] 38 // [origin-]widthxheight[*device_scale_factor][#resolutions list]
44 // [/<properties>][@ui-scale] 39 // [/<properties>][@ui-scale]
45 // 40 //
46 // where [] are optional: 41 // where [] are optional:
47 // - |origin| is given in x+y- format. 42 // - |origin| is given in x+y- format.
48 // - |device_scale_factor| is either 2 or 1 (or empty). 43 // - |device_scale_factor| is either 2 or 1 (or empty).
49 // - properties can combination of 'o', which adds default overscan insets 44 // - properties can combination of 'o', which adds default overscan insets
50 // (5%), and one rotation property where 'r' is 90 degree clock-wise 45 // (5%), and one rotation property where 'r' is 90 degree clock-wise
51 // (to the 'r'ight) 'u' is 180 degrees ('u'pside-down) and 'l' is 46 // (to the 'r'ight) 'u' is 180 degrees ('u'pside-down) and 'l' is
52 // 270 degrees (to the 'l'eft). 47 // 270 degrees (to the 'l'eft).
53 // - ui-scale is floating value, e.g. @1.5 or @1.25. 48 // - ui-scale is floating value, e.g. @1.5 or @1.25.
54 // - |resolution list| is the list of size that is given in 49 // - |resolution list| is the list of size that is given in
55 // |width x height [% refresh_rate]| separated by '|'. 50 // |width x height| separated by '|'.
56 // 51 //
57 // A couple of examples: 52 // A couple of examples:
58 // "100x100" 53 // "100x100"
59 // 100x100 window at 0,0 origin. 1x device scale factor. no overscan. 54 // 100x100 window at 0,0 origin. 1x device scale factor. no overscan.
60 // no rotation. 1.0 ui scale. 55 // no rotation. 1.0 ui scale.
61 // "5+5-300x200*2" 56 // "5+5-300x200*2"
62 // 300x200 window at 5,5 origin. 2x device scale factor. 57 // 300x200 window at 5,5 origin. 2x device scale factor.
63 // no overscan, no rotation. 1.0 ui scale. 58 // no overscan, no rotation. 1.0 ui scale.
64 // "300x200/ol" 59 // "300x200/ol"
65 // 300x200 window at 0,0 origin. 1x device scale factor. 60 // 300x200 window at 0,0 origin. 1x device scale factor.
66 // with 5% overscan. rotated to left (90 degree counter clockwise). 61 // with 5% overscan. rotated to left (90 degree counter clockwise).
67 // 1.0 ui scale. 62 // 1.0 ui scale.
68 // "10+20-300x200/u@1.5" 63 // "10+20-300x200/u@1.5"
69 // 300x200 window at 10,20 origin. 1x device scale factor. 64 // 300x200 window at 10,20 origin. 1x device scale factor.
70 // no overscan. flipped upside-down (180 degree) and 1.5 ui scale. 65 // no overscan. flipped upside-down (180 degree) and 1.5 ui scale.
71 // "200x100#300x200|200x100%59.0|100x100%60" 66 // "200x100#300x200|200x100|100x100"
72 // 200x100 window at 0,0 origin, with 3 possible resolutions, 67 // 200x100 window at 0,0 origin, with 3 possible resolutions,
73 // 300x200, 200x100 at 59 Hz, and 100x100 at 60 Hz. 68 // 300x200, 200x100 and 100x100.
74 static DisplayInfo CreateFromSpec(const std::string& spec); 69 static DisplayInfo CreateFromSpec(const std::string& spec);
75 70
76 // Creates a DisplayInfo from string spec using given |id|. 71 // Creates a DisplayInfo from string spec using given |id|.
77 static DisplayInfo CreateFromSpecWithID(const std::string& spec, 72 static DisplayInfo CreateFromSpecWithID(const std::string& spec,
78 int64 id); 73 int64 id);
79 74
80 DisplayInfo(); 75 DisplayInfo();
81 DisplayInfo(int64 id, const std::string& name, bool has_overscan); 76 DisplayInfo(int64 id, const std::string& name, bool has_overscan);
82 ~DisplayInfo(); 77 ~DisplayInfo();
83 78
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 // and rotation settings. 135 // and rotation settings.
141 void UpdateDisplaySize(); 136 void UpdateDisplaySize();
142 137
143 // Sets/Clears the overscan insets. 138 // Sets/Clears the overscan insets.
144 void SetOverscanInsets(const gfx::Insets& insets_in_dip); 139 void SetOverscanInsets(const gfx::Insets& insets_in_dip);
145 gfx::Insets GetOverscanInsetsInPixel() const; 140 gfx::Insets GetOverscanInsetsInPixel() const;
146 141
147 void set_native(bool native) { native_ = native; } 142 void set_native(bool native) { native_ = native; }
148 bool native() const { return native_; } 143 bool native() const { return native_; }
149 144
150 const std::vector<DisplayMode>& display_modes() const { 145 const std::vector<Resolution>& resolutions() const {
151 return display_modes_; 146 return resolutions_;
152 } 147 }
153 void set_display_modes(std::vector<DisplayMode>& display_modes) { 148 void set_resolutions(std::vector<Resolution>& resolution) {
154 display_modes_.swap(display_modes); 149 resolutions_.swap(resolution);
155 } 150 }
156 151
157 // Returns a string representation of the DisplayInfo, excluding display 152 // Returns a string representation of the DisplayInfo
158 // modes. 153 // excluding resolutions.
159 std::string ToString() const; 154 std::string ToString() const;
160 155
161 // Returns a string representation of the DisplayInfo, including display 156 // Returns a string representation of the DisplayInfo
162 // modes. 157 // including resolutions.
163 std::string ToFullString() const; 158 std::string ToFullString() const;
164 159
165 private: 160 private:
166 int64 id_; 161 int64 id_;
167 std::string name_; 162 std::string name_;
168 bool has_overscan_; 163 bool has_overscan_;
169 gfx::Display::Rotation rotation_; 164 gfx::Display::Rotation rotation_;
170 gfx::Display::TouchSupport touch_support_; 165 gfx::Display::TouchSupport touch_support_;
171 166
172 // This specifies the device's pixel density. (For example, a 167 // This specifies the device's pixel density. (For example, a
(...skipping 13 matching lines...) Expand all
186 // shrink) the desktop over the native display resolution (useful in 181 // shrink) the desktop over the native display resolution (useful in
187 // HighDPI display). Note that this should not be confused with the 182 // HighDPI display). Note that this should not be confused with the
188 // device scale factor, which specifies the pixel density of the 183 // device scale factor, which specifies the pixel density of the
189 // display. The actuall scale value to be used depends on the device 184 // display. The actuall scale value to be used depends on the device
190 // scale factor. See |GetEffectiveScaleFactor()|. 185 // scale factor. See |GetEffectiveScaleFactor()|.
191 float configured_ui_scale_; 186 float configured_ui_scale_;
192 187
193 // True if this comes from native platform (DisplayChangeObserver). 188 // True if this comes from native platform (DisplayChangeObserver).
194 bool native_; 189 bool native_;
195 190
196 // The list of modes supported by this display. 191 // The list of resolutions supported by this display.
197 std::vector<DisplayMode> display_modes_; 192 std::vector<Resolution> resolutions_;
198 }; 193 };
199 194
200 } // namespace internal 195 } // namespace internal
201 } // namespace ash 196 } // namespace ash
202 197
203 #endif // ASH_DISPLAY_DISPLAY_INFO_H_ 198 #endif // ASH_DISPLAY_DISPLAY_INFO_H_
OLDNEW
« no previous file with comments | « ash/display/display_controller.cc ('k') | ash/display/display_info.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698