Changeset View
Changeset View
Standalone View
Standalone View
plugins/platforms/virtual/virtual_backend.h
Show All 26 Lines | |||||
27 | #include <QSize> | 27 | #include <QSize> | ||
28 | 28 | | |||
29 | class QTemporaryDir; | 29 | class QTemporaryDir; | ||
30 | 30 | | |||
31 | struct gbm_device; | 31 | struct gbm_device; | ||
32 | 32 | | |||
33 | namespace KWin | 33 | namespace KWin | ||
34 | { | 34 | { | ||
35 | namespace ColorCorrect { | ||||
36 | class Manager; | ||||
37 | struct GammaRamp; | ||||
38 | } | ||||
39 | | ||||
35 | 40 | | |||
36 | class KWIN_EXPORT VirtualBackend : public Platform | 41 | class KWIN_EXPORT VirtualBackend : public Platform | ||
37 | { | 42 | { | ||
38 | Q_OBJECT | 43 | Q_OBJECT | ||
39 | Q_INTERFACES(KWin::Platform) | 44 | Q_INTERFACES(KWin::Platform) | ||
40 | Q_PLUGIN_METADATA(IID "org.kde.kwin.Platform" FILE "virtual.json") | 45 | Q_PLUGIN_METADATA(IID "org.kde.kwin.Platform" FILE "virtual.json") | ||
41 | Q_PROPERTY(QSize size READ size NOTIFY sizeChanged) | 46 | Q_PROPERTY(QSize size READ size NOTIFY sizeChanged) | ||
42 | public: | 47 | public: | ||
Show All 17 Lines | |||||
60 | QString screenshotDirPath() const; | 65 | QString screenshotDirPath() const; | ||
61 | 66 | | |||
62 | Screens *createScreens(QObject *parent = nullptr) override; | 67 | Screens *createScreens(QObject *parent = nullptr) override; | ||
63 | QPainterBackend* createQPainterBackend() override; | 68 | QPainterBackend* createQPainterBackend() override; | ||
64 | OpenGLBackend *createOpenGLBackend() override; | 69 | OpenGLBackend *createOpenGLBackend() override; | ||
65 | 70 | | |||
66 | Q_INVOKABLE void setOutputCount(int count) { | 71 | Q_INVOKABLE void setOutputCount(int count) { | ||
67 | m_outputCount = count; | 72 | m_outputCount = count; | ||
73 | m_gammaSizes = QVector<int>(count, 200); | ||||
74 | m_gammaResults = QVector<bool>(count, true); | ||||
68 | } | 75 | } | ||
69 | 76 | | |||
70 | Q_INVOKABLE void setOutputScale(qreal scale) { | 77 | Q_INVOKABLE void setOutputScale(qreal scale) { | ||
71 | m_outputScale = scale; | 78 | m_outputScale = scale; | ||
72 | } | 79 | } | ||
73 | 80 | | |||
74 | int drmFd() const { | 81 | int drmFd() const { | ||
75 | return m_drmFd; | 82 | return m_drmFd; | ||
76 | } | 83 | } | ||
77 | void setDrmFd(int fd) { | 84 | void setDrmFd(int fd) { | ||
78 | m_drmFd = fd; | 85 | m_drmFd = fd; | ||
79 | } | 86 | } | ||
80 | 87 | | |||
81 | gbm_device *gbmDevice() const { | 88 | gbm_device *gbmDevice() const { | ||
82 | return m_gbmDevice; | 89 | return m_gbmDevice; | ||
83 | } | 90 | } | ||
84 | void setGbmDevice(gbm_device *device) { | 91 | void setGbmDevice(gbm_device *device) { | ||
85 | m_gbmDevice = device; | 92 | m_gbmDevice = device; | ||
86 | } | 93 | } | ||
94 | virtual int gammaRampSize(int screen) const override; | ||||
95 | virtual bool setGammaRamp(int screen, ColorCorrect::GammaRamp &gamma) override; | ||||
87 | 96 | | |||
88 | QVector<CompositingType> supportedCompositors() const override { | 97 | QVector<CompositingType> supportedCompositors() const override { | ||
89 | return QVector<CompositingType>{OpenGLCompositing, QPainterCompositing}; | 98 | return QVector<CompositingType>{OpenGLCompositing, QPainterCompositing}; | ||
90 | } | 99 | } | ||
91 | 100 | | |||
92 | Q_SIGNALS: | 101 | Q_SIGNALS: | ||
93 | void sizeChanged(); | 102 | void sizeChanged(); | ||
94 | void outputGeometriesChanged(const QVector<QRect> &geometries); | 103 | void outputGeometriesChanged(const QVector<QRect> &geometries); | ||
95 | 104 | | |||
96 | private: | 105 | private: | ||
97 | QSize m_size; | 106 | QSize m_size; | ||
98 | int m_outputCount = 1; | 107 | int m_outputCount = 1; | ||
99 | qreal m_outputScale = 1; | 108 | qreal m_outputScale = 1; | ||
100 | QScopedPointer<QTemporaryDir> m_screenshotDir; | 109 | QScopedPointer<QTemporaryDir> m_screenshotDir; | ||
101 | int m_drmFd = -1; | 110 | int m_drmFd = -1; | ||
102 | gbm_device *m_gbmDevice = nullptr; | 111 | gbm_device *m_gbmDevice = nullptr; | ||
112 | | ||||
113 | QVector<int> m_gammaSizes = QVector<int>(1, 200); | ||||
114 | QVector<bool> m_gammaResults = QVector<bool>(1, true); | ||||
103 | }; | 115 | }; | ||
104 | 116 | | |||
105 | } | 117 | } | ||
106 | 118 | | |||
107 | #endif | 119 | #endif |