Allow creating virtual ouputs with a user visible description

wilder/Plasma/6.3
David Redondo 1 year ago
parent 180ae7ea5b
commit 41f0d73c44
  1. 4
      src/backends/drm/drm_backend.cpp
  2. 2
      src/backends/drm/drm_backend.h
  3. 3
      src/backends/drm/drm_virtual_output.cpp
  4. 2
      src/backends/drm/drm_virtual_output.h
  5. 2
      src/backends/wayland/wayland_backend.cpp
  6. 2
      src/backends/wayland/wayland_backend.h
  7. 2
      src/core/outputbackend.cpp
  8. 2
      src/core/outputbackend.h
  9. 2
      src/plugins/screencast/screencastmanager.cpp

@ -328,9 +328,9 @@ QString DrmBackend::supportInformation() const
return supportInfo;
}
Output *DrmBackend::createVirtualOutput(const QString &name, const QSize &size, double scale)
Output *DrmBackend::createVirtualOutput(const QString &name, const QString &description, const QSize &size, double scale)
{
const auto ret = new DrmVirtualOutput(this, name, size, scale);
const auto ret = new DrmVirtualOutput(this, name, description, size, scale);
m_virtualOutputs.push_back(ret);
addOutput(ret);
Q_EMIT outputsQueried();

@ -52,7 +52,7 @@ public:
QList<CompositingType> supportedCompositors() const override;
QString supportInformation() const override;
Output *createVirtualOutput(const QString &name, const QSize &size, double scale) override;
Output *createVirtualOutput(const QString &name, const QString &description, const QSize &size, double scale) override;
void removeVirtualOutput(Output *output) override;
DrmGpu *primaryGpu() const;

@ -19,7 +19,7 @@
namespace KWin
{
DrmVirtualOutput::DrmVirtualOutput(DrmBackend *backend, const QString &name, const QSize &size, qreal scale)
DrmVirtualOutput::DrmVirtualOutput(DrmBackend *backend, const QString &name, const QString &description, const QSize &size, qreal scale)
: m_backend(backend)
, m_vsyncMonitor(SoftwareVsyncMonitor::create())
{
@ -30,6 +30,7 @@ DrmVirtualOutput::DrmVirtualOutput(DrmBackend *backend, const QString &name, con
setInformation(Information{
.name = QStringLiteral("Virtual-") + name,
.model = description,
.physicalSize = size,
});

@ -26,7 +26,7 @@ class DrmVirtualOutput : public DrmAbstractOutput
Q_OBJECT
public:
explicit DrmVirtualOutput(DrmBackend *backend, const QString &name, const QSize &size, qreal scale);
explicit DrmVirtualOutput(DrmBackend *backend, const QString &name, const QString &description, const QSize &size, qreal scale);
~DrmVirtualOutput() override;
bool present(const std::shared_ptr<OutputFrame> &frame) override;

@ -562,7 +562,7 @@ Outputs WaylandBackend::outputs() const
return m_outputs;
}
Output *WaylandBackend::createVirtualOutput(const QString &name, const QSize &size, double scale)
Output *WaylandBackend::createVirtualOutput(const QString &name, const QString &description, const QSize &size, double scale)
{
return createOutput(name, size * scale, scale);
}

@ -232,7 +232,7 @@ public:
return m_outputs;
}
Output *createVirtualOutput(const QString &name, const QSize &size, double scale) override;
Output *createVirtualOutput(const QString &name, const QString &description, const QSize &size, double scale) override;
void removeVirtualOutput(Output *output) override;
wl_buffer *importBuffer(GraphicsBuffer *graphicsBuffer);

@ -77,7 +77,7 @@ Output *OutputBackend::findOutput(const QString &name) const
return nullptr;
}
Output *OutputBackend::createVirtualOutput(const QString &name, const QSize &size, double scale)
Output *OutputBackend::createVirtualOutput(const QString &name, const QString &description, const QSize &size, double scale)
{
return nullptr;
}

@ -86,7 +86,7 @@ public:
*/
virtual QString supportInformation() const;
virtual Output *createVirtualOutput(const QString &name, const QSize &size, qreal scale);
virtual Output *createVirtualOutput(const QString &name, const QString &description, const QSize &size, qreal scale);
virtual void removeVirtualOutput(Output *output);
/**

@ -59,7 +59,7 @@ void ScreencastManager::streamVirtualOutput(ScreencastStreamV1Interface *stream,
double scale,
ScreencastV1Interface::CursorMode mode)
{
auto output = kwinApp()->outputBackend()->createVirtualOutput(name, size, scale);
auto output = kwinApp()->outputBackend()->createVirtualOutput(name, name, size, scale);
streamOutput(stream, output, mode);
connect(stream, &ScreencastStreamV1Interface::finished, output, [output] {
kwinApp()->outputBackend()->removeVirtualOutput(output);

Loading…
Cancel
Save