42 std::unique_ptr<InputBackend> createInputBackend()
override;
43 std::unique_ptr<QPainterBackend> createQPainterBackend()
override;
44 std::unique_ptr<OpenGLBackend> createOpenGLBackend()
override;
45 EglDisplay *sceneEglDisplayObject()
const override;
47 bool initialize()
override;
49 Outputs outputs()
const override;
50 Session *session()
const override;
52 QList<CompositingType> supportedCompositors()
const override;
54 QString supportInformation()
const override;
55 Output *createVirtualOutput(
const QString &name,
const QSize &size,
double scale)
override;
56 void removeVirtualOutput(
Output *output)
override;
58 DrmGpu *primaryGpu()
const;
59 DrmGpu *findGpu(dev_t deviceId)
const;
60 size_t gpuCount()
const;
65 void releaseBuffers();
68 const std::vector<std::unique_ptr<DrmGpu>> &gpus()
const;
71 void sceneInitialized()
override;
84 void handleUdevEvent();
85 DrmGpu *addGpu(
const QString &fileName);
87 std::unique_ptr<Udev> m_udev;
88 std::unique_ptr<UdevMonitor> m_udevMonitor;
89 std::unique_ptr<QSocketNotifier> m_socketNotifier;
91 QList<DrmAbstractOutput *> m_outputs;
92 QList<QUuid> m_recentlyUnpluggedDpmsOffOutputs;
94 const QStringList m_explicitGpus;
95 std::vector<std::unique_ptr<DrmGpu>> m_gpus;