Changeset View
Changeset View
Standalone View
Standalone View
plugins/platforms/virtual/virtual_backend.h
Show All 39 Lines | 38 | { | |||
---|---|---|---|---|---|
40 | Q_INTERFACES(KWin::Platform) | 40 | Q_INTERFACES(KWin::Platform) | ||
41 | Q_PLUGIN_METADATA(IID "org.kde.kwin.Platform" FILE "virtual.json") | 41 | Q_PLUGIN_METADATA(IID "org.kde.kwin.Platform" FILE "virtual.json") | ||
42 | 42 | | |||
43 | public: | 43 | public: | ||
44 | VirtualBackend(QObject *parent = nullptr); | 44 | VirtualBackend(QObject *parent = nullptr); | ||
45 | virtual ~VirtualBackend(); | 45 | virtual ~VirtualBackend(); | ||
46 | void init() override; | 46 | void init() override; | ||
47 | 47 | | |||
48 | int outputCount() const { | | |||
49 | return m_outputs.size(); | | |||
50 | } | | |||
51 | const QVector<VirtualOutput*> outputs() const { | | |||
52 | return m_outputs; | | |||
53 | } | | |||
54 | qreal outputScale() const { | | |||
55 | return m_outputScale; | | |||
56 | } | | |||
57 | | ||||
58 | bool saveFrames() const { | 48 | bool saveFrames() const { | ||
59 | return !m_screenshotDir.isNull(); | 49 | return !m_screenshotDir.isNull(); | ||
60 | } | 50 | } | ||
61 | QString screenshotDirPath() const; | 51 | QString screenshotDirPath() const; | ||
62 | 52 | | |||
63 | Screens *createScreens(QObject *parent = nullptr) override; | 53 | Screens *createScreens(QObject *parent = nullptr) override; | ||
64 | QPainterBackend* createQPainterBackend() override; | 54 | QPainterBackend* createQPainterBackend() override; | ||
65 | OpenGLBackend *createOpenGLBackend() override; | 55 | OpenGLBackend *createOpenGLBackend() override; | ||
66 | 56 | | |||
67 | Q_INVOKABLE void setVirtualOutputs(int count, QVector<QRect> geometries = QVector<QRect>()); | 57 | Q_INVOKABLE void setVirtualOutputs(int count, QVector<QRect> geometries = QVector<QRect>()); | ||
68 | 58 | | |||
69 | Q_INVOKABLE void setOutputScale(qreal scale) { | | |||
70 | m_outputScale = scale; | | |||
71 | } | | |||
72 | | ||||
73 | int drmFd() const { | 59 | int drmFd() const { | ||
74 | return m_drmFd; | 60 | return m_drmFd; | ||
75 | } | 61 | } | ||
76 | void setDrmFd(int fd) { | 62 | void setDrmFd(int fd) { | ||
77 | m_drmFd = fd; | 63 | m_drmFd = fd; | ||
78 | } | 64 | } | ||
79 | 65 | | |||
80 | gbm_device *gbmDevice() const { | 66 | gbm_device *gbmDevice() const { | ||
81 | return m_gbmDevice; | 67 | return m_gbmDevice; | ||
82 | } | 68 | } | ||
83 | void setGbmDevice(gbm_device *device) { | 69 | void setGbmDevice(gbm_device *device) { | ||
84 | m_gbmDevice = device; | 70 | m_gbmDevice = device; | ||
85 | } | 71 | } | ||
86 | virtual int gammaRampSize(int screen) const override; | 72 | virtual int gammaRampSize(int screen) const override; | ||
87 | virtual bool setGammaRamp(int screen, ColorCorrect::GammaRamp &gamma) override; | 73 | virtual bool setGammaRamp(int screen, ColorCorrect::GammaRamp &gamma) override; | ||
88 | 74 | | |||
89 | QVector<CompositingType> supportedCompositors() const override { | 75 | QVector<CompositingType> supportedCompositors() const override { | ||
90 | return QVector<CompositingType>{OpenGLCompositing, QPainterCompositing}; | 76 | return QVector<CompositingType>{OpenGLCompositing, QPainterCompositing}; | ||
91 | } | 77 | } | ||
92 | 78 | | |||
93 | Q_SIGNALS: | 79 | Q_SIGNALS: | ||
94 | void virtualOutputsSet(bool countChanged); | 80 | void virtualOutputsSet(bool countChanged); | ||
95 | 81 | | |||
96 | private: | 82 | private: | ||
97 | QVector<VirtualOutput*> m_outputs; | | |||
98 | | ||||
99 | qreal m_outputScale = 1; | | |||
100 | | ||||
101 | QScopedPointer<QTemporaryDir> m_screenshotDir; | 83 | QScopedPointer<QTemporaryDir> m_screenshotDir; | ||
102 | int m_drmFd = -1; | 84 | int m_drmFd = -1; | ||
103 | gbm_device *m_gbmDevice = nullptr; | 85 | gbm_device *m_gbmDevice = nullptr; | ||
104 | }; | 86 | }; | ||
105 | 87 | | |||
106 | } | 88 | } | ||
107 | 89 | | |||
108 | #endif | 90 | #endif |