Changeset View
Changeset View
Standalone View
Standalone View
abstract_wayland_output.cpp
Show First 20 Lines • Show All 53 Lines • ▼ Show 20 Line(s) | |||||
54 | 54 | | |||
55 | QRect AbstractWaylandOutput::geometry() const | 55 | QRect AbstractWaylandOutput::geometry() const | ||
56 | { | 56 | { | ||
57 | return QRect(globalPos(), pixelSize() / scale()); | 57 | return QRect(globalPos(), pixelSize() / scale()); | ||
58 | } | 58 | } | ||
59 | 59 | | |||
60 | QSize AbstractWaylandOutput::physicalSize() const | 60 | QSize AbstractWaylandOutput::physicalSize() const | ||
61 | { | 61 | { | ||
62 | return orientateSize(m_physicalSize); | 62 | return orientateSize(m_waylandOutputDevice->physicalSize()); | ||
63 | } | 63 | } | ||
64 | 64 | | |||
65 | int AbstractWaylandOutput::refreshRate() const | 65 | int AbstractWaylandOutput::refreshRate() const | ||
66 | { | 66 | { | ||
67 | if (!m_waylandOutput) { | 67 | if (!m_waylandOutput) { | ||
68 | return 60000; | 68 | return 60000; | ||
69 | } | 69 | } | ||
70 | return m_waylandOutput->refreshRate(); | 70 | return m_waylandOutput->refreshRate(); | ||
▲ Show 20 Lines • Show All 127 Lines • ▼ Show 20 Line(s) | 193 | { | |||
198 | m_waylandOutput = waylandServer()->display()->createOutput(); | 198 | m_waylandOutput = waylandServer()->display()->createOutput(); | ||
199 | createXdgOutput(); | 199 | createXdgOutput(); | ||
200 | 200 | | |||
201 | /* | 201 | /* | ||
202 | * add base wayland output data | 202 | * add base wayland output data | ||
203 | */ | 203 | */ | ||
204 | m_waylandOutput->setManufacturer(m_waylandOutputDevice->manufacturer()); | 204 | m_waylandOutput->setManufacturer(m_waylandOutputDevice->manufacturer()); | ||
205 | m_waylandOutput->setModel(m_waylandOutputDevice->model()); | 205 | m_waylandOutput->setModel(m_waylandOutputDevice->model()); | ||
206 | m_waylandOutput->setPhysicalSize(rawPhysicalSize()); | 206 | m_waylandOutput->setPhysicalSize(m_waylandOutputDevice->physicalSize()); | ||
207 | 207 | | |||
208 | /* | 208 | /* | ||
209 | * add modes | 209 | * add modes | ||
210 | */ | 210 | */ | ||
211 | for(const auto &mode: m_waylandOutputDevice->modes()) { | 211 | for(const auto &mode: m_waylandOutputDevice->modes()) { | ||
212 | KWayland::Server::OutputInterface::ModeFlags flags; | 212 | KWayland::Server::OutputInterface::ModeFlags flags; | ||
213 | if (mode.flags & KWayland::Server::OutputDeviceInterface::ModeFlag::Current) { | 213 | if (mode.flags & KWayland::Server::OutputDeviceInterface::ModeFlag::Current) { | ||
214 | flags |= KWayland::Server::OutputInterface::ModeFlag::Current; | 214 | flags |= KWayland::Server::OutputInterface::ModeFlag::Current; | ||
Show All 16 Lines | 230 | [this] (KWayland::Server::OutputInterface::DpmsMode mode) { | |||
231 | updateDpms(mode); | 231 | updateDpms(mode); | ||
232 | }, Qt::QueuedConnection | 232 | }, Qt::QueuedConnection | ||
233 | ); | 233 | ); | ||
234 | } | 234 | } | ||
235 | 235 | | |||
236 | void AbstractWaylandOutput::initWaylandOutputDevice(const QString &model, | 236 | void AbstractWaylandOutput::initWaylandOutputDevice(const QString &model, | ||
237 | const QString &manufacturer, | 237 | const QString &manufacturer, | ||
238 | const QByteArray &uuid, | 238 | const QByteArray &uuid, | ||
239 | const QSize &physicalSize, | ||||
239 | const QVector<KWayland::Server::OutputDeviceInterface::Mode> &modes) | 240 | const QVector<KWayland::Server::OutputDeviceInterface::Mode> &modes) | ||
240 | { | 241 | { | ||
241 | Q_ASSERT(m_waylandOutputDevice.isNull()); | 242 | Q_ASSERT(m_waylandOutputDevice.isNull()); | ||
242 | m_waylandOutputDevice = waylandServer()->display()->createOutputDevice(); | 243 | m_waylandOutputDevice = waylandServer()->display()->createOutputDevice(); | ||
243 | m_waylandOutputDevice->setUuid(uuid); | 244 | m_waylandOutputDevice->setUuid(uuid); | ||
244 | 245 | | |||
245 | if (!manufacturer.isEmpty()) { | 246 | if (!manufacturer.isEmpty()) { | ||
246 | m_waylandOutputDevice->setManufacturer(manufacturer); | 247 | m_waylandOutputDevice->setManufacturer(manufacturer); | ||
247 | } else { | 248 | } else { | ||
248 | m_waylandOutputDevice->setManufacturer(i18n("unknown")); | 249 | m_waylandOutputDevice->setManufacturer(i18n("unknown")); | ||
249 | } | 250 | } | ||
250 | 251 | | |||
251 | m_waylandOutputDevice->setModel(model); | 252 | m_waylandOutputDevice->setModel(model); | ||
252 | m_waylandOutputDevice->setPhysicalSize(m_physicalSize); | 253 | m_waylandOutputDevice->setPhysicalSize(physicalSize); | ||
253 | 254 | | |||
254 | int i = 0; | 255 | int i = 0; | ||
255 | for (auto mode : modes) { | 256 | for (auto mode : modes) { | ||
256 | qCDebug(KWIN_CORE).nospace() << "Adding mode " << ++i << ": " << mode.size << " [" << mode.refreshRate << "]"; | 257 | qCDebug(KWIN_CORE).nospace() << "Adding mode " << ++i << ": " << mode.size << " [" << mode.refreshRate << "]"; | ||
257 | m_waylandOutputDevice->addMode(mode); | 258 | m_waylandOutputDevice->addMode(mode); | ||
258 | } | 259 | } | ||
259 | m_waylandOutputDevice->create(); | 260 | m_waylandOutputDevice->create(); | ||
260 | } | 261 | } | ||
Show All 10 Lines |