11 #include "DRMConnector.h" 13 #include "DRMEncoder.h" 15 #include "windowing/Resolution.h" 16 #include "windowing/gbm/GBMUtils.h" 32 struct gbm_bo *bo =
nullptr;
42 virtual void FlipPage(
struct gbm_bo* bo,
bool rendered,
bool videoLayer) {}
43 virtual bool SetVideoMode(
const RESOLUTION_INFO& res,
struct gbm_bo* bo) {
return false; }
44 virtual bool SetActive(
bool active) {
return false; }
45 virtual bool InitDrm();
46 virtual void DestroyDrm();
48 int GetFileDescriptor()
const {
return m_fd; }
49 int GetRenderNodeFileDescriptor()
const {
return m_renderFd; }
50 const char* GetRenderDevicePath()
const {
return m_renderDevicePath; }
51 CDRMPlane* GetVideoPlane()
const {
return m_video_plane; }
52 CDRMPlane* GetGuiPlane()
const {
return m_gui_plane; }
53 CDRMCrtc* GetCrtc()
const {
return m_crtc; }
56 std::vector<std::string> GetConnectedConnectorNames();
59 virtual std::vector<RESOLUTION_INFO> GetModes();
62 static uint32_t FourCCWithAlpha(uint32_t fourcc);
63 static uint32_t FourCCWithoutAlpha(uint32_t fourcc);
66 bool OpenDrm(
bool needConnector);
67 drm_fb* DrmFbGetFromBo(
struct gbm_bo *bo);
76 drmModeModeInfo *m_mode =
nullptr;
81 std::vector<std::unique_ptr<CDRMPlane>> m_planes;
88 bool FindPreferredMode();
89 bool RestoreOriginalMode();
91 void PrintDrmDeviceInfo(drmDevicePtr device);
94 const char* m_renderDevicePath{
nullptr};
96 std::vector<std::unique_ptr<CDRMConnector>> m_connectors;
97 std::vector<std::unique_ptr<CDRMEncoder>> m_encoders;
98 std::vector<std::unique_ptr<CDRMCrtc>> m_crtcs;
Definition: DRMUtils.h:30
Definition: DRMPlane.h:24
Provide info of a resolution.
Definition: Resolution.h:66
Controller configuration window.
Definition: AudioDecoder.h:18
Definition: DRMEncoder.h:20
Definition: DRMConnector.h:22
Definition: DRMUtils.h:37