diff --git a/plugins/platforms/drm/drm_output.cpp b/plugins/platforms/drm/drm_output.cpp --- a/plugins/platforms/drm/drm_output.cpp +++ b/plugins/platforms/drm/drm_output.cpp @@ -33,12 +33,7 @@ #include "screens_drm.h" #include "wayland_server.h" // KWayland -#include #include -#include -#include -#include -#include // KF5 #include #include @@ -177,49 +172,6 @@ drmModeMoveCursor(m_backend->fd(), m_crtc->id(), p.x(), p.y()); } -QSize DrmOutput::pixelSize() const -{ - auto orient = orientation(); - if (orient == Qt::PortraitOrientation || orient == Qt::InvertedPortraitOrientation) { - return QSize(m_mode.vdisplay, m_mode.hdisplay); - } - return QSize(m_mode.hdisplay, m_mode.vdisplay); -} - -static KWayland::Server::OutputInterface::DpmsMode toWaylandDpmsMode(DrmOutput::DpmsMode mode) -{ - using namespace KWayland::Server; - switch (mode) { - case DrmOutput::DpmsMode::On: - return OutputInterface::DpmsMode::On; - case DrmOutput::DpmsMode::Standby: - return OutputInterface::DpmsMode::Standby; - case DrmOutput::DpmsMode::Suspend: - return OutputInterface::DpmsMode::Suspend; - case DrmOutput::DpmsMode::Off: - return OutputInterface::DpmsMode::Off; - default: - Q_UNREACHABLE(); - } -} - -static DrmOutput::DpmsMode fromWaylandDpmsMode(KWayland::Server::OutputInterface::DpmsMode wlMode) -{ - using namespace KWayland::Server; - switch (wlMode) { - case OutputInterface::DpmsMode::On: - return DrmOutput::DpmsMode::On; - case OutputInterface::DpmsMode::Standby: - return DrmOutput::DpmsMode::Standby; - case OutputInterface::DpmsMode::Suspend: - return DrmOutput::DpmsMode::Suspend; - case OutputInterface::DpmsMode::Off: - return DrmOutput::DpmsMode::Off; - default: - Q_UNREACHABLE(); - } -} - static QHash s_connectorNames = { {DRM_MODE_CONNECTOR_Unknown, QByteArrayLiteral("Unknown")}, {DRM_MODE_CONNECTOR_VGA, QByteArrayLiteral("VGA")}, @@ -595,6 +547,21 @@ return false; } +bool DrmOutput::initCursor(const QSize &cursorSize) +{ + auto createCursor = [this, cursorSize] (int index) { + m_cursor[index] = m_backend->createBuffer(cursorSize); + if (!m_cursor[index]->map(QImage::Format_ARGB32_Premultiplied)) { + return false; + } + return true; + }; + if (!createCursor(0) || !createCursor(1)) { + return false; + } + return true; +} + void DrmOutput::initDpms(drmModeConnector *connector) { for (int i = 0; i < connector->count_props; ++i) { @@ -609,6 +576,40 @@ } } +static DrmOutput::DpmsMode fromWaylandDpmsMode(KWayland::Server::OutputInterface::DpmsMode wlMode) +{ + using namespace KWayland::Server; + switch (wlMode) { + case OutputInterface::DpmsMode::On: + return DrmOutput::DpmsMode::On; + case OutputInterface::DpmsMode::Standby: + return DrmOutput::DpmsMode::Standby; + case OutputInterface::DpmsMode::Suspend: + return DrmOutput::DpmsMode::Suspend; + case OutputInterface::DpmsMode::Off: + return DrmOutput::DpmsMode::Off; + default: + Q_UNREACHABLE(); + } +} + +static KWayland::Server::OutputInterface::DpmsMode toWaylandDpmsMode(DrmOutput::DpmsMode mode) +{ + using namespace KWayland::Server; + switch (mode) { + case DrmOutput::DpmsMode::On: + return OutputInterface::DpmsMode::On; + case DrmOutput::DpmsMode::Standby: + return OutputInterface::DpmsMode::Standby; + case DrmOutput::DpmsMode::Suspend: + return OutputInterface::DpmsMode::Suspend; + case DrmOutput::DpmsMode::Off: + return OutputInterface::DpmsMode::Off; + default: + Q_UNREACHABLE(); + } +} + void DrmOutput::updateDpms(KWayland::Server::OutputInterface::DpmsMode mode) { if (m_dpms.isNull()) { @@ -684,15 +685,6 @@ m_backend->outputWentOff(); } -int DrmOutput::currentRefreshRate() const -{ - auto wlOutput = waylandOutput(); - if (!wlOutput) { - return 60000; - } - return wlOutput->refreshRate(); -} - void DrmOutput::transform(KWayland::Server::OutputDeviceInterface::Transform transform) { waylandOutputDevice()->setTransform(transform); @@ -790,6 +782,24 @@ emit modeChanged(); } +int DrmOutput::currentRefreshRate() const +{ + auto wlOutput = waylandOutput(); + if (!wlOutput) { + return 60000; + } + return wlOutput->refreshRate(); +} + +QSize DrmOutput::pixelSize() const +{ + auto orient = orientation(); + if (orient == Qt::PortraitOrientation || orient == Qt::InvertedPortraitOrientation) { + return QSize(m_mode.vdisplay, m_mode.hdisplay); + } + return QSize(m_mode.hdisplay, m_mode.vdisplay); +} + void DrmOutput::setWaylandMode() { AbstractOutput::setWaylandMode(QSize(m_mode.hdisplay, m_mode.vdisplay), @@ -1108,21 +1118,6 @@ return ret; } -bool DrmOutput::initCursor(const QSize &cursorSize) -{ - auto createCursor = [this, cursorSize] (int index) { - m_cursor[index] = m_backend->createBuffer(cursorSize); - if (!m_cursor[index]->map(QImage::Format_ARGB32_Premultiplied)) { - return false; - } - return true; - }; - if (!createCursor(0) || !createCursor(1)) { - return false; - } - return true; -} - bool DrmOutput::supportsTransformations() const { if (!m_primaryPlane) {