diff --git a/plugins/platforms/fbdev/fb_backend.h b/plugins/platforms/fbdev/fb_backend.h --- a/plugins/platforms/fbdev/fb_backend.h +++ b/plugins/platforms/fbdev/fb_backend.h @@ -37,12 +37,10 @@ FramebufferOutput(QObject *parent = nullptr) : AbstractWaylandOutput(parent) {} ~FramebufferOutput() override = default; + void init(const QSize &size); QSize pixelSize() const override { return m_pixelSize; } - void setPixelSize(const QSize &set) { - m_pixelSize = set; - } void setRawPhysicalSize(const QSize &set) { AbstractWaylandOutput::setRawPhysicalSize(set); diff --git a/plugins/platforms/fbdev/fb_backend.cpp b/plugins/platforms/fbdev/fb_backend.cpp --- a/plugins/platforms/fbdev/fb_backend.cpp +++ b/plugins/platforms/fbdev/fb_backend.cpp @@ -37,9 +37,22 @@ namespace KWin { +void FramebufferOutput::init(const QSize &size) +{ + m_pixelSize = size; + KWayland::Server::OutputDeviceInterface::Mode mode; + mode.id = 0; + mode.size = size; + mode.flags = KWayland::Server::OutputDeviceInterface::ModeFlag::Current; + mode.refreshRate = 60000; // TODO: get actual refresh rate of fb device? + AbstractWaylandOutput::initWaylandOutputDevice("model_TODO", "manufacturer_TODO", + "UUID_TODO", { mode }); +} + FramebufferBackend::FramebufferBackend(QObject *parent) : Platform(parent) { + handleOutputs(); } FramebufferBackend::~FramebufferBackend() @@ -137,8 +150,9 @@ } auto *output = new FramebufferOutput(this); - output->setPixelSize(QSize(varinfo.xres, varinfo.yres)); + output->init(QSize(varinfo.xres, varinfo.yres)); output->setRawPhysicalSize(QSize(varinfo.width, varinfo.height)); + output->setEnabled(true); m_outputs << output; m_id = QByteArray(fixinfo.id);