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

Side by Side Diff: ui/ozone/platform/dri/display_snapshot_dri.cc

Issue 667753002: Treat displays with and without EDID the same way (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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
« no previous file with comments | « ui/ozone/common/gpu/ozone_gpu_messages.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/dri/display_snapshot_dri.h" 5 #include "ui/ozone/platform/dri/display_snapshot_dri.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 #include <stdlib.h> 8 #include <stdlib.h>
9 #include <xf86drmMode.h> 9 #include <xf86drmMode.h>
10 10
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 return false; 60 return false;
61 } 61 }
62 62
63 } // namespace 63 } // namespace
64 64
65 DisplaySnapshotDri::DisplaySnapshotDri(DriWrapper* drm, 65 DisplaySnapshotDri::DisplaySnapshotDri(DriWrapper* drm,
66 drmModeConnector* connector, 66 drmModeConnector* connector,
67 drmModeCrtc* crtc, 67 drmModeCrtc* crtc,
68 uint32_t index) 68 uint32_t index)
69 : DisplaySnapshot(index, 69 : DisplaySnapshot(index,
70 false,
71 gfx::Point(crtc->x, crtc->y), 70 gfx::Point(crtc->x, crtc->y),
72 gfx::Size(connector->mmWidth, connector->mmHeight), 71 gfx::Size(connector->mmWidth, connector->mmHeight),
73 GetDisplayType(connector), 72 GetDisplayType(connector),
74 IsAspectPreserving(drm, connector), 73 IsAspectPreserving(drm, connector),
75 false, 74 false,
76 std::string(), 75 std::string(),
77 std::vector<const DisplayMode*>(), 76 std::vector<const DisplayMode*>(),
78 NULL, 77 NULL,
79 NULL), 78 NULL),
80 connector_(connector->connector_id), 79 connector_(connector->connector_id),
81 crtc_(crtc->crtc_id), 80 crtc_(crtc->crtc_id),
82 dpms_property_(drm->GetProperty(connector, "DPMS")) { 81 dpms_property_(drm->GetProperty(connector, "DPMS")) {
83 if (!dpms_property_) 82 if (!dpms_property_)
84 VLOG(1) << "Failed to find the DPMS property for connector " 83 VLOG(1) << "Failed to find the DPMS property for connector "
85 << connector->connector_id; 84 << connector->connector_id;
86 85
87 ScopedDrmPropertyBlobPtr edid_blob(drm->GetPropertyBlob(connector, "EDID")); 86 ScopedDrmPropertyBlobPtr edid_blob(drm->GetPropertyBlob(connector, "EDID"));
88 87
89 if (edid_blob) { 88 if (edid_blob) {
90 std::vector<uint8_t> edid( 89 std::vector<uint8_t> edid(
91 static_cast<uint8_t*>(edid_blob->data), 90 static_cast<uint8_t*>(edid_blob->data),
92 static_cast<uint8_t*>(edid_blob->data) + edid_blob->length); 91 static_cast<uint8_t*>(edid_blob->data) + edid_blob->length);
93 92
94 has_proper_display_id_ = GetDisplayIdFromEDID(edid, index, &display_id_); 93 if (!GetDisplayIdFromEDID(edid, index, &display_id_))
94 display_id_ = index;
95
95 ParseOutputDeviceData(edid, NULL, &display_name_); 96 ParseOutputDeviceData(edid, NULL, &display_name_);
96 ParseOutputOverscanFlag(edid, &overscan_flag_); 97 ParseOutputOverscanFlag(edid, &overscan_flag_);
97 } else { 98 } else {
98 VLOG(1) << "Failed to get EDID blob for connector " 99 VLOG(1) << "Failed to get EDID blob for connector "
99 << connector->connector_id; 100 << connector->connector_id;
100 } 101 }
101 102
102 for (int i = 0; i < connector->count_modes; ++i) { 103 for (int i = 0; i < connector->count_modes; ++i) {
103 drmModeModeInfo& mode = connector->modes[i]; 104 drmModeModeInfo& mode = connector->modes[i];
104 modes_.push_back(new DisplayModeDri(mode)); 105 modes_.push_back(new DisplayModeDri(mode));
(...skipping 18 matching lines...) Expand all
123 return base::StringPrintf( 124 return base::StringPrintf(
124 "[type=%d, connector=%" PRIu32 ", crtc=%" PRIu32 ", mode=%s, dim=%s]", 125 "[type=%d, connector=%" PRIu32 ", crtc=%" PRIu32 ", mode=%s, dim=%s]",
125 type_, 126 type_,
126 connector_, 127 connector_,
127 crtc_, 128 crtc_,
128 current_mode_ ? current_mode_->ToString().c_str() : "NULL", 129 current_mode_ ? current_mode_->ToString().c_str() : "NULL",
129 physical_size_.ToString().c_str()); 130 physical_size_.ToString().c_str());
130 } 131 }
131 132
132 } // namespace ui 133 } // namespace ui
OLDNEW
« no previous file with comments | « ui/ozone/common/gpu/ozone_gpu_messages.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698