| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 #include "ui/display/manager/display_manager_utilities.h" | 5 #include "ui/display/manager/display_manager_utilities.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/sys_info.h" | 10 #include "base/sys_info.h" |
| 11 #include "ui/display/manager/managed_display_info.h" | 11 #include "ui/display/manager/managed_display_info.h" |
| 12 #include "ui/gfx/geometry/size_conversions.h" | 12 #include "ui/gfx/geometry/size_conversions.h" |
| 13 #include "ui/gfx/geometry/size_f.h" | 13 #include "ui/gfx/geometry/size_f.h" |
| 14 | 14 |
| 15 namespace display { | 15 namespace display { |
| 16 | 16 |
| 17 namespace { | 17 namespace { |
| 18 | 18 |
| 19 // List of value UI Scale values. Scales for 2x are equivalent to 640, | 19 // List of value UI Scale values. Scales for 2x are equivalent to 640, |
| 20 // 800, 1024, 1280, 1440, 1600 and 1920 pixel width respectively on | 20 // 800, 1024, 1280, 1440, 1600 and 1920 pixel width respectively on |
| 21 // 2560 pixel width 2x density display. Please see crbug.com/233375 | 21 // 2560 pixel width 2x density display. Please see crbug.com/233375 |
| 22 // for the full list of resolutions. | 22 // for the full list of resolutions. |
| 23 constexpr float kUIScalesFor2x[] = {0.5f, 0.625f, 0.8f, 1.0f, | 23 constexpr float kUIScalesFor2x[] = {0.5f, 0.625f, 0.8f, 1.0f, |
| 24 1.125f, 1.25f, 1.5f, 2.0f}; | 24 1.125f, 1.25f, 1.5f, 2.0f}; |
| 25 constexpr float kUIScalesFor1_25x[] = {0.5f, 0.625f, 0.8f, 1.0f, 1.25f}; | 25 constexpr float kUIScalesFor1_25x[] = {0.5f, 0.625f, 0.8f, 1.0f, 1.25f}; |
| 26 constexpr float kUIScalesFor1_6x[] = {0.5f, 0.8f, 1.0f, 1.2f, 1.6f}; |
| 27 |
| 26 constexpr float kUIScalesFor1280[] = {0.5f, 0.625f, 0.8f, 1.0f, 1.125f}; | 28 constexpr float kUIScalesFor1280[] = {0.5f, 0.625f, 0.8f, 1.0f, 1.125f}; |
| 27 constexpr float kUIScalesFor1366[] = {0.5f, 0.6f, 0.75f, 1.0f, 1.125f}; | 29 constexpr float kUIScalesFor1366[] = {0.5f, 0.6f, 0.75f, 1.0f, 1.125f}; |
| 30 constexpr float kUIScalesForFHD[] = {0.5f, 0.625f, 0.8f, 1.0f, 1.25f}; |
| 28 | 31 |
| 29 // The default UI scales for the above display densities. | 32 // The default UI scales for the above display densities. |
| 30 constexpr float kDefaultUIScaleFor2x = 1.0f; | 33 constexpr float kDefaultUIScaleFor2x = 1.0f; |
| 31 constexpr float kDefaultUIScaleFor1_25x = 0.8f; | 34 constexpr float kDefaultUIScaleFor1_25x = 0.8f; |
| 35 constexpr float kDefaultUIScaleFor1_6x = 1.0f; |
| 32 constexpr float kDefaultUIScaleFor1280 = 1.0f; | 36 constexpr float kDefaultUIScaleFor1280 = 1.0f; |
| 33 constexpr float kDefaultUIScaleFor1366 = 1.0f; | 37 constexpr float kDefaultUIScaleFor1366 = 1.0f; |
| 38 constexpr float kDefaultUIScaleForFHD = 1.0f; |
| 34 | 39 |
| 35 // Encapsulates the list of UI scales and the default one. | 40 // Encapsulates the list of UI scales and the default one. |
| 36 struct DisplayUIScales { | 41 struct DisplayUIScales { |
| 37 std::vector<float> scales; | 42 std::vector<float> scales; |
| 38 float default_scale; | 43 float default_scale; |
| 39 }; | 44 }; |
| 40 | 45 |
| 41 DisplayUIScales GetScalesForDisplay( | 46 DisplayUIScales GetScalesForDisplay( |
| 42 const scoped_refptr<ManagedDisplayMode>& native_mode) { | 47 const scoped_refptr<ManagedDisplayMode>& native_mode) { |
| 43 #define ASSIGN_ARRAY(v, a) v.assign(a, a + arraysize(a)) | 48 #define ASSIGN_ARRAY(v, a) v.assign(a, a + arraysize(a)) |
| 44 | 49 |
| 45 DisplayUIScales ret; | 50 DisplayUIScales ret; |
| 46 if (native_mode->device_scale_factor() == 2.0f) { | 51 if (native_mode->device_scale_factor() == 2.0f) { |
| 47 ASSIGN_ARRAY(ret.scales, kUIScalesFor2x); | 52 ASSIGN_ARRAY(ret.scales, kUIScalesFor2x); |
| 48 ret.default_scale = kDefaultUIScaleFor2x; | 53 ret.default_scale = kDefaultUIScaleFor2x; |
| 49 return ret; | 54 return ret; |
| 50 } else if (native_mode->device_scale_factor() == 1.25f) { | 55 } else if (native_mode->device_scale_factor() == 1.25f) { |
| 51 ASSIGN_ARRAY(ret.scales, kUIScalesFor1_25x); | 56 ASSIGN_ARRAY(ret.scales, kUIScalesFor1_25x); |
| 52 ret.default_scale = kDefaultUIScaleFor1_25x; | 57 ret.default_scale = kDefaultUIScaleFor1_25x; |
| 53 return ret; | 58 return ret; |
| 59 } else if (native_mode->device_scale_factor() == 1.6f) { |
| 60 ASSIGN_ARRAY(ret.scales, kUIScalesFor1_6x); |
| 61 ret.default_scale = kDefaultUIScaleFor1_6x; |
| 62 return ret; |
| 54 } | 63 } |
| 55 switch (native_mode->size().width()) { | 64 switch (native_mode->size().width()) { |
| 56 case 1280: | 65 case 1280: |
| 57 ASSIGN_ARRAY(ret.scales, kUIScalesFor1280); | 66 ASSIGN_ARRAY(ret.scales, kUIScalesFor1280); |
| 58 ret.default_scale = kDefaultUIScaleFor1280; | 67 ret.default_scale = kDefaultUIScaleFor1280; |
| 59 break; | 68 break; |
| 60 case 1366: | 69 case 1366: |
| 61 ASSIGN_ARRAY(ret.scales, kUIScalesFor1366); | 70 ASSIGN_ARRAY(ret.scales, kUIScalesFor1366); |
| 62 ret.default_scale = kDefaultUIScaleFor1366; | 71 ret.default_scale = kDefaultUIScaleFor1366; |
| 63 break; | 72 break; |
| 73 case 1980: |
| 74 ASSIGN_ARRAY(ret.scales, kUIScalesForFHD); |
| 75 ret.default_scale = kDefaultUIScaleForFHD; |
| 76 break; |
| 64 default: | 77 default: |
| 65 ASSIGN_ARRAY(ret.scales, kUIScalesFor1280); | 78 ASSIGN_ARRAY(ret.scales, kUIScalesFor1280); |
| 66 ret.default_scale = kDefaultUIScaleFor1280; | 79 ret.default_scale = kDefaultUIScaleFor1280; |
| 67 #if defined(OS_CHROMEOS) | 80 #if defined(OS_CHROMEOS) |
| 68 if (base::SysInfo::IsRunningOnChromeOS()) | 81 if (base::SysInfo::IsRunningOnChromeOS()) |
| 69 NOTREACHED() << "Unknown resolution:" << native_mode->size().ToString(); | 82 NOTREACHED() << "Unknown resolution:" << native_mode->size().ToString(); |
| 70 #endif | 83 #endif |
| 71 } | 84 } |
| 72 return ret; | 85 return ret; |
| 73 } | 86 } |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 281 std::stringstream s; | 294 std::stringstream s; |
| 282 const char* sep = ""; | 295 const char* sep = ""; |
| 283 for (int64_t id : list) { | 296 for (int64_t id : list) { |
| 284 s << sep << id; | 297 s << sep << id; |
| 285 sep = ","; | 298 sep = ","; |
| 286 } | 299 } |
| 287 return s.str(); | 300 return s.str(); |
| 288 } | 301 } |
| 289 | 302 |
| 290 } // namespace display | 303 } // namespace display |
| OLD | NEW |