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

Unified Diff: ui/ozone/platform/drm/gpu/drm_display_snapshot.cc

Issue 1129923004: [1/2][Ozone-Drm] Refactor GPU display management (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@handle-display-init2
Patch Set: . Created 5 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: ui/ozone/platform/drm/gpu/drm_display_snapshot.cc
diff --git a/ui/ozone/platform/drm/gpu/drm_display_snapshot.cc b/ui/ozone/platform/drm/gpu/drm_display_snapshot.cc
deleted file mode 100644
index 19fce33a3ea2208e8bca904f918c484413720532..0000000000000000000000000000000000000000
--- a/ui/ozone/platform/drm/gpu/drm_display_snapshot.cc
+++ /dev/null
@@ -1,133 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ui/ozone/platform/drm/gpu/drm_display_snapshot.h"
-
-#include <stdint.h>
-#include <stdlib.h>
-#include <xf86drmMode.h>
-
-#include "base/format_macros.h"
-#include "base/logging.h"
-#include "base/strings/stringprintf.h"
-#include "ui/display/util/edid_parser.h"
-#include "ui/ozone/platform/drm/common/drm_util.h"
-#include "ui/ozone/platform/drm/gpu/drm_device.h"
-#include "ui/ozone/platform/drm/gpu/drm_display_mode.h"
-
-#if !defined(DRM_MODE_CONNECTOR_DSI)
-#define DRM_MODE_CONNECTOR_DSI 16
-#endif
-
-namespace ui {
-
-namespace {
-
-DisplayConnectionType GetDisplayType(drmModeConnector* connector) {
- switch (connector->connector_type) {
- case DRM_MODE_CONNECTOR_VGA:
- return DISPLAY_CONNECTION_TYPE_VGA;
- case DRM_MODE_CONNECTOR_DVII:
- case DRM_MODE_CONNECTOR_DVID:
- case DRM_MODE_CONNECTOR_DVIA:
- return DISPLAY_CONNECTION_TYPE_DVI;
- case DRM_MODE_CONNECTOR_LVDS:
- case DRM_MODE_CONNECTOR_eDP:
- case DRM_MODE_CONNECTOR_DSI:
- return DISPLAY_CONNECTION_TYPE_INTERNAL;
- case DRM_MODE_CONNECTOR_DisplayPort:
- return DISPLAY_CONNECTION_TYPE_DISPLAYPORT;
- case DRM_MODE_CONNECTOR_HDMIA:
- case DRM_MODE_CONNECTOR_HDMIB:
- return DISPLAY_CONNECTION_TYPE_HDMI;
- default:
- return DISPLAY_CONNECTION_TYPE_UNKNOWN;
- }
-}
-
-bool IsAspectPreserving(DrmDevice* drm, drmModeConnector* connector) {
- ScopedDrmPropertyPtr property(drm->GetProperty(connector, "scaling mode"));
- if (!property)
- return false;
-
- for (int props_i = 0; props_i < connector->count_props; ++props_i) {
- if (connector->props[props_i] != property->prop_id)
- continue;
-
- for (int enums_i = 0; enums_i < property->count_enums; ++enums_i) {
- if (property->enums[enums_i].value == connector->prop_values[props_i] &&
- strcmp(property->enums[enums_i].name, "Full aspect") == 0)
- return true;
- }
- }
-
- return false;
-}
-
-} // namespace
-
-DrmDisplaySnapshot::DrmDisplaySnapshot(const scoped_refptr<DrmDevice>& drm,
- drmModeConnector* connector,
- drmModeCrtc* crtc,
- uint32_t index)
- : DisplaySnapshot(index,
- gfx::Point(crtc->x, crtc->y),
- gfx::Size(connector->mmWidth, connector->mmHeight),
- GetDisplayType(connector),
- IsAspectPreserving(drm.get(), connector),
- false,
- std::string(),
- std::vector<const DisplayMode*>(),
- nullptr,
- nullptr),
- drm_(drm),
- connector_(connector->connector_id),
- crtc_(crtc->crtc_id) {
- ScopedDrmPropertyBlobPtr edid_blob(drm->GetPropertyBlob(connector, "EDID"));
-
- if (edid_blob) {
- std::vector<uint8_t> edid(
- static_cast<uint8_t*>(edid_blob->data),
- static_cast<uint8_t*>(edid_blob->data) + edid_blob->length);
-
- if (!GetDisplayIdFromEDID(edid, index, &display_id_))
- display_id_ = index;
-
- ParseOutputDeviceData(edid, nullptr, &display_name_, nullptr, nullptr);
- ParseOutputOverscanFlag(edid, &overscan_flag_);
- } else {
- VLOG(1) << "Failed to get EDID blob for connector "
- << connector->connector_id;
- }
-
- for (int i = 0; i < connector->count_modes; ++i) {
- drmModeModeInfo& mode = connector->modes[i];
- modes_.push_back(new DrmDisplayMode(mode));
-
- if (crtc->mode_valid && SameMode(crtc->mode, mode))
- current_mode_ = modes_.back();
-
- if (mode.type & DRM_MODE_TYPE_PREFERRED)
- native_mode_ = modes_.back();
- }
-
- // If no preferred mode is found then use the first one. Using the first one
- // since it should be the best mode.
- if (!native_mode_ && !modes_.empty())
- native_mode_ = modes_.front();
-}
-
-DrmDisplaySnapshot::~DrmDisplaySnapshot() {
-}
-
-std::string DrmDisplaySnapshot::ToString() const {
- return base::StringPrintf(
- "[type=%d, connector=%" PRIu32 ", crtc=%" PRIu32
- ", origin=%s, mode=%s, dim=%s]",
- type_, connector_, crtc_, origin_.ToString().c_str(),
- current_mode_ ? current_mode_->ToString().c_str() : "NULL",
- physical_size_.ToString().c_str());
-}
-
-} // namespace ui
« no previous file with comments | « ui/ozone/platform/drm/gpu/drm_display_snapshot.h ('k') | ui/ozone/platform/drm/gpu/drm_gpu_display_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698