Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qeglfskmsdevice.cpp
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// Copyright (C) 2016 Pelagicore AG
3// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
4
7#include "private/qeglfsintegration_p.h"
8#include <QtGui/private/qguiapplication_p.h>
9
11
12QEglFSKmsDevice::QEglFSKmsDevice(QKmsScreenConfig *screenConfig, const QString &path)
13 : QKmsDevice(screenConfig, path)
14{
15}
16
17void QEglFSKmsDevice::registerScreen(QPlatformScreen *screen,
18 bool isPrimary,
19 const QPoint &virtualPos,
20 const QList<QPlatformScreen *> &virtualSiblings)
21{
22 QEglFSKmsScreen *s = static_cast<QEglFSKmsScreen *>(screen);
23 s->setVirtualPosition(virtualPos);
24 s->setVirtualSiblings(virtualSiblings);
25 QWindowSystemInterface::handleScreenAdded(s, isPrimary);
26}
27
28void QEglFSKmsDevice::unregisterScreen(QPlatformScreen *screen)
29{
30 QEglFSKmsScreen *s = static_cast<QEglFSKmsScreen *>(screen);
31 for (QPlatformScreen *sibling : s->virtualSiblings())
32 static_cast<QEglFSKmsScreen *>(sibling)->removeSibling(s);
33
34 QWindowSystemInterface::handleScreenRemoved(screen);
35}
36
37void QEglFSKmsDevice::updateScreen(QPlatformScreen *screen, const QPoint &virtualPos,
38 const QList<QPlatformScreen *> &virtualSiblings)
39{
40 QEglFSKmsScreen *s = static_cast<QEglFSKmsScreen *>(screen);
41 QRect before = s->geometry();
42 s->setVirtualPosition(virtualPos);
43 s->setVirtualSiblings(virtualSiblings);
44 QRect after = s->geometry();
45
46 if (before != after)
47 QWindowSystemInterface::handleScreenGeometryChange(s->screen(), after,
48 s->availableGeometry());
49}
50
51void QEglFSKmsDevice::updateScreenOutput(QPlatformScreen *screen, const QKmsOutput &output)
52{
53 QEglFSKmsScreen *s = static_cast<QEglFSKmsScreen *>(screen);
54 QRect before = s->geometry();
55 s->updateOutput(output);
56 QRect after = s->geometry();
57
58 if (before != after)
59 QWindowSystemInterface::handleScreenGeometryChange(s->screen(), after,
60 s->availableGeometry());
61}
62
63QT_END_NAMESPACE