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; 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); m_virtualOutputs.push_back(ret);
addOutput(ret); addOutput(ret);
Q_EMIT outputsQueried(); Q_EMIT outputsQueried();

@ -52,7 +52,7 @@ public:
QList<CompositingType> supportedCompositors() const override; QList<CompositingType> supportedCompositors() const override;
QString supportInformation() 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; void removeVirtualOutput(Output *output) override;
DrmGpu *primaryGpu() const; DrmGpu *primaryGpu() const;

@ -19,7 +19,7 @@
namespace KWin 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_backend(backend)
, m_vsyncMonitor(SoftwareVsyncMonitor::create()) , m_vsyncMonitor(SoftwareVsyncMonitor::create())
{ {
@ -30,6 +30,7 @@ DrmVirtualOutput::DrmVirtualOutput(DrmBackend *backend, const QString &name, con
setInformation(Information{ setInformation(Information{
.name = QStringLiteral("Virtual-") + name, .name = QStringLiteral("Virtual-") + name,
.model = description,
.physicalSize = size, .physicalSize = size,
}); });

@ -26,7 +26,7 @@ class DrmVirtualOutput : public DrmAbstractOutput
Q_OBJECT Q_OBJECT
public: 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; ~DrmVirtualOutput() override;
bool present(const std::shared_ptr<OutputFrame> &frame) override; bool present(const std::shared_ptr<OutputFrame> &frame) override;

@ -562,7 +562,7 @@ Outputs WaylandBackend::outputs() const
return m_outputs; 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); return createOutput(name, size * scale, scale);
} }

@ -232,7 +232,7 @@ public:
return m_outputs; 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; void removeVirtualOutput(Output *output) override;
wl_buffer *importBuffer(GraphicsBuffer *graphicsBuffer); wl_buffer *importBuffer(GraphicsBuffer *graphicsBuffer);

@ -77,7 +77,7 @@ Output *OutputBackend::findOutput(const QString &name) const
return nullptr; 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; return nullptr;
} }

@ -86,7 +86,7 @@ public:
*/ */
virtual QString supportInformation() const; 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); virtual void removeVirtualOutput(Output *output);
/** /**

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

Loading…
Cancel
Save