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

Side by Side Diff: ui/ozone/platform/drm/gpu/drm_gpu_display_manager.cc

Issue 1868363002: Replace scoped_ptr with std::unique_ptr in //ui (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@scopedptrcc
Patch Set: scopedptrui: rebase-make_scoped_ptr Created 4 years, 8 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/ozone/platform/drm/gpu/drm_gpu_display_manager.h" 5 #include "ui/ozone/platform/drm/gpu/drm_gpu_display_manager.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/memory/ptr_util.h"
9 #include "ui/display/types/gamma_ramp_rgb_entry.h" 10 #include "ui/display/types/gamma_ramp_rgb_entry.h"
10 #include "ui/ozone/common/display_util.h" 11 #include "ui/ozone/common/display_util.h"
11 #include "ui/ozone/platform/drm/common/drm_util.h" 12 #include "ui/ozone/platform/drm/common/drm_util.h"
12 #include "ui/ozone/platform/drm/gpu/drm_device.h" 13 #include "ui/ozone/platform/drm/gpu/drm_device.h"
13 #include "ui/ozone/platform/drm/gpu/drm_device_manager.h" 14 #include "ui/ozone/platform/drm/gpu/drm_device_manager.h"
14 #include "ui/ozone/platform/drm/gpu/drm_display.h" 15 #include "ui/ozone/platform/drm/gpu/drm_display.h"
15 #include "ui/ozone/platform/drm/gpu/screen_manager.h" 16 #include "ui/ozone/platform/drm/gpu/screen_manager.h"
16 17
17 namespace ui { 18 namespace ui {
18 19
19 namespace { 20 namespace {
20 21
21 class DisplayComparator { 22 class DisplayComparator {
22 public: 23 public:
23 explicit DisplayComparator(const DrmDisplay* display) 24 explicit DisplayComparator(const DrmDisplay* display)
24 : drm_(display->drm()), 25 : drm_(display->drm()),
25 crtc_(display->crtc()), 26 crtc_(display->crtc()),
26 connector_(display->connector()) {} 27 connector_(display->connector()) {}
27 28
28 DisplayComparator(const scoped_refptr<DrmDevice>& drm, 29 DisplayComparator(const scoped_refptr<DrmDevice>& drm,
29 uint32_t crtc, 30 uint32_t crtc,
30 uint32_t connector) 31 uint32_t connector)
31 : drm_(drm), crtc_(crtc), connector_(connector) {} 32 : drm_(drm), crtc_(crtc), connector_(connector) {}
32 33
33 bool operator()(const scoped_ptr<DrmDisplay>& other) const { 34 bool operator()(const std::unique_ptr<DrmDisplay>& other) const {
34 return drm_ == other->drm() && connector_ == other->connector() && 35 return drm_ == other->drm() && connector_ == other->connector() &&
35 crtc_ == other->crtc(); 36 crtc_ == other->crtc();
36 } 37 }
37 38
38 private: 39 private:
39 scoped_refptr<DrmDevice> drm_; 40 scoped_refptr<DrmDevice> drm_;
40 uint32_t crtc_; 41 uint32_t crtc_;
41 uint32_t connector_; 42 uint32_t connector_;
42 }; 43 };
43 44
(...skipping 17 matching lines...) Expand all
61 62
62 DrmGpuDisplayManager::DrmGpuDisplayManager(ScreenManager* screen_manager, 63 DrmGpuDisplayManager::DrmGpuDisplayManager(ScreenManager* screen_manager,
63 DrmDeviceManager* drm_device_manager) 64 DrmDeviceManager* drm_device_manager)
64 : screen_manager_(screen_manager), drm_device_manager_(drm_device_manager) { 65 : screen_manager_(screen_manager), drm_device_manager_(drm_device_manager) {
65 } 66 }
66 67
67 DrmGpuDisplayManager::~DrmGpuDisplayManager() { 68 DrmGpuDisplayManager::~DrmGpuDisplayManager() {
68 } 69 }
69 70
70 std::vector<DisplaySnapshot_Params> DrmGpuDisplayManager::GetDisplays() { 71 std::vector<DisplaySnapshot_Params> DrmGpuDisplayManager::GetDisplays() {
71 std::vector<scoped_ptr<DrmDisplay>> old_displays; 72 std::vector<std::unique_ptr<DrmDisplay>> old_displays;
72 old_displays.swap(displays_); 73 old_displays.swap(displays_);
73 std::vector<DisplaySnapshot_Params> params_list; 74 std::vector<DisplaySnapshot_Params> params_list;
74 75
75 const DrmDeviceVector& devices = drm_device_manager_->GetDrmDevices(); 76 const DrmDeviceVector& devices = drm_device_manager_->GetDrmDevices();
76 size_t device_index = 0; 77 size_t device_index = 0;
77 for (const auto& drm : devices) { 78 for (const auto& drm : devices) {
78 ScopedVector<HardwareDisplayControllerInfo> display_infos = 79 ScopedVector<HardwareDisplayControllerInfo> display_infos =
79 GetAvailableDisplayControllerInfos(drm->get_fd()); 80 GetAvailableDisplayControllerInfos(drm->get_fd());
80 for (auto* display_info : display_infos) { 81 for (auto* display_info : display_infos) {
81 auto it = std::find_if( 82 auto it = std::find_if(
82 old_displays.begin(), old_displays.end(), 83 old_displays.begin(), old_displays.end(),
83 DisplayComparator(drm, display_info->crtc()->crtc_id, 84 DisplayComparator(drm, display_info->crtc()->crtc_id,
84 display_info->connector()->connector_id)); 85 display_info->connector()->connector_id));
85 if (it != old_displays.end()) { 86 if (it != old_displays.end()) {
86 displays_.push_back(std::move(*it)); 87 displays_.push_back(std::move(*it));
87 old_displays.erase(it); 88 old_displays.erase(it);
88 } else { 89 } else {
89 displays_.push_back( 90 displays_.push_back(
90 make_scoped_ptr(new DrmDisplay(screen_manager_, drm))); 91 base::WrapUnique(new DrmDisplay(screen_manager_, drm)));
91 } 92 }
92 params_list.push_back( 93 params_list.push_back(
93 displays_.back()->Update(display_info, device_index)); 94 displays_.back()->Update(display_info, device_index));
94 } 95 }
95 device_index++; 96 device_index++;
96 } 97 }
97 98
98 NotifyScreenManager(displays_, old_displays); 99 NotifyScreenManager(displays_, old_displays);
99 return params_list; 100 return params_list;
100 } 101 }
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 DrmDisplay* DrmGpuDisplayManager::FindDisplay(int64_t display_id) { 213 DrmDisplay* DrmGpuDisplayManager::FindDisplay(int64_t display_id) {
213 for (const auto& display : displays_) { 214 for (const auto& display : displays_) {
214 if (display->display_id() == display_id) 215 if (display->display_id() == display_id)
215 return display.get(); 216 return display.get();
216 } 217 }
217 218
218 return nullptr; 219 return nullptr;
219 } 220 }
220 221
221 void DrmGpuDisplayManager::NotifyScreenManager( 222 void DrmGpuDisplayManager::NotifyScreenManager(
222 const std::vector<scoped_ptr<DrmDisplay>>& new_displays, 223 const std::vector<std::unique_ptr<DrmDisplay>>& new_displays,
223 const std::vector<scoped_ptr<DrmDisplay>>& old_displays) const { 224 const std::vector<std::unique_ptr<DrmDisplay>>& old_displays) const {
224 for (const auto& old_display : old_displays) { 225 for (const auto& old_display : old_displays) {
225 auto it = std::find_if(new_displays.begin(), new_displays.end(), 226 auto it = std::find_if(new_displays.begin(), new_displays.end(),
226 DisplayComparator(old_display.get())); 227 DisplayComparator(old_display.get()));
227 228
228 if (it == new_displays.end()) { 229 if (it == new_displays.end()) {
229 screen_manager_->RemoveDisplayController(old_display->drm(), 230 screen_manager_->RemoveDisplayController(old_display->drm(),
230 old_display->crtc()); 231 old_display->crtc());
231 } 232 }
232 } 233 }
233 234
234 for (const auto& new_display : new_displays) { 235 for (const auto& new_display : new_displays) {
235 auto it = std::find_if(old_displays.begin(), old_displays.end(), 236 auto it = std::find_if(old_displays.begin(), old_displays.end(),
236 DisplayComparator(new_display.get())); 237 DisplayComparator(new_display.get()));
237 238
238 if (it == old_displays.end()) { 239 if (it == old_displays.end()) {
239 screen_manager_->AddDisplayController( 240 screen_manager_->AddDisplayController(
240 new_display->drm(), new_display->crtc(), new_display->connector()); 241 new_display->drm(), new_display->crtc(), new_display->connector());
241 } 242 }
242 } 243 }
243 } 244 }
244 245
245 } // namespace ui 246 } // namespace ui
OLDNEW
« no previous file with comments | « ui/ozone/platform/drm/gpu/drm_gpu_display_manager.h ('k') | ui/ozone/platform/drm/gpu/drm_overlay_validator_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698