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
3 // found in the LICENSE file.
5 #ifndef UI_OZONE_PLATFORM_DRM_COMMON_DRM_UTIL_H_
6 #define UI_OZONE_PLATFORM_DRM_COMMON_DRM_UTIL_H_
8 #include "base/files/file_path.h"
9 #include "base/macros.h"
10 #include "base/memory/scoped_vector.h"
11 #include "ui/ozone/common/gpu/ozone_gpu_message_params.h"
12 #include "ui/ozone/platform/drm/common/scoped_drm_types.h"
14 typedef struct _drmModeModeInfo drmModeModeInfo
;
22 // Representation of the information required to initialize and configure a
24 class HardwareDisplayControllerInfo
{
26 HardwareDisplayControllerInfo(ScopedDrmConnectorPtr connector
,
27 ScopedDrmCrtcPtr crtc
);
28 ~HardwareDisplayControllerInfo();
30 drmModeConnector
* connector() const { return connector_
.get(); }
31 drmModeCrtc
* crtc() const { return crtc_
.get(); }
34 ScopedDrmConnectorPtr connector_
;
35 ScopedDrmCrtcPtr crtc_
;
37 DISALLOW_COPY_AND_ASSIGN(HardwareDisplayControllerInfo
);
40 // Looks-up and parses the native display configurations returning all available
42 ScopedVector
<HardwareDisplayControllerInfo
> GetAvailableDisplayControllerInfos(
45 bool SameMode(const drmModeModeInfo
& lhs
, const drmModeModeInfo
& rhs
);
47 DisplayMode_Params
CreateDisplayModeParams(const drmModeModeInfo
& mode
);
49 // |info| provides the DRM information related to the display, |fd| is the
50 // connection to the DRM device and |index| provides a unique identifier for the
51 // display. |index| will be used to generate the display id (it may be the id if
52 // the monitor's EDID lacks the necessary identifiers).
53 DisplaySnapshot_Params
CreateDisplaySnapshotParams(
54 HardwareDisplayControllerInfo
* info
,
57 const gfx::Point
& origin
);
61 #endif // UI_OZONE_PLATFORM_DRM_COMMON_DRM_UTIL_H_