KWin
Loading...
Searching...
No Matches
outputbackend.cpp
Go to the documentation of this file.
1/*
2 KWin - the KDE window manager
3 This file is part of the KDE project.
4
5 SPDX-FileCopyrightText: 2015 Martin Gräßlin <mgraesslin@kde.org>
6
7 SPDX-License-Identifier: GPL-2.0-or-later
8*/
9
10#include "outputbackend.h"
11
12#include "inputbackend.h"
13#include "opengl/egldisplay.h"
14#include "output.h"
15#include "outputconfiguration.h"
18
19namespace KWin
20{
21
23 : QObject(parent)
24{
25}
26
30
31std::unique_ptr<InputBackend> OutputBackend::createInputBackend()
32{
33 return nullptr;
34}
35
36std::unique_ptr<OpenGLBackend> OutputBackend::createOpenGLBackend()
37{
38 return nullptr;
39}
40
41std::unique_ptr<QPainterBackend> OutputBackend::createQPainterBackend()
42{
43 return nullptr;
44}
45
47{
48 const auto availableOutputs = outputs();
49 QList<Output *> toBeEnabledOutputs;
50 QList<Output *> toBeDisabledOutputs;
51 for (const auto &output : availableOutputs) {
52 if (const auto changeset = config.constChangeSet(output)) {
53 if (changeset->enabled) {
54 toBeEnabledOutputs << output;
55 } else {
56 toBeDisabledOutputs << output;
57 }
58 }
59 }
60 for (const auto &output : toBeEnabledOutputs) {
61 output->applyChanges(config);
62 }
63 for (const auto &output : toBeDisabledOutputs) {
64 output->applyChanges(config);
65 }
66 return true;
67}
68
69Output *OutputBackend::findOutput(const QString &name) const
70{
71 const auto candidates = outputs();
72 for (Output *candidate : candidates) {
73 if (candidate->name() == name) {
74 return candidate;
75 }
76 }
77 return nullptr;
78}
79
80Output *OutputBackend::createVirtualOutput(const QString &name, const QSize &size, double scale)
81{
82 return nullptr;
83}
84
86{
87 Q_ASSERT(!output);
88}
89
91{
92 return QStringLiteral("Name: %1\n").arg(metaObject()->className());
93}
94
99
101{
102 m_globalShareContext = context;
103}
104
106{
107 return nullptr;
108}
109
110} // namespace KWin
111
112#include "moc_outputbackend.cpp"
Output * findOutput(const QString &name) const
::EGLContext sceneEglGlobalShareContext() const
OutputBackend(QObject *parent=nullptr)
void setSceneEglGlobalShareContext(::EGLContext context)
virtual std::unique_ptr< InputBackend > createInputBackend()
virtual std::unique_ptr< QPainterBackend > createQPainterBackend()
::EGLContext m_globalShareContext
virtual Outputs outputs() const =0
virtual Session * session() const
virtual QString supportInformation() const
virtual void removeVirtualOutput(Output *output)
virtual std::unique_ptr< OpenGLBackend > createOpenGLBackend()
virtual bool applyOutputChanges(const OutputConfiguration &config)
virtual Output * createVirtualOutput(const QString &name, const QSize &size, qreal scale)
std::shared_ptr< OutputChangeSet > constChangeSet(Output *output) const