Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qwaylandsurface_p.h
Go to the documentation of this file.
1
// Copyright (C) 2019 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
5
#
ifndef
QWAYLANDSURFACE_P_H
6
#
define
QWAYLANDSURFACE_P_H
7
8
//
9
// W A R N I N G
10
// -------------
11
//
12
// This file is not part of the Qt API. It exists purely as an
13
// implementation detail. This header file may change from version to
14
// version without notice, or even be removed.
15
//
16
// We mean it.
17
//
18
19
#
include
<
QtGui
/
QScreen
>
20
21
#
include
<
QtWaylandClient
/
private
/
qwayland
-
wayland
.
h
>
22
#
include
<
QtCore
/
private
/
qglobal_p
.
h
>
23
24
#
include
<
variant
>
25
26
QT_BEGIN_NAMESPACE
27
28
namespace
QtWaylandClient
{
29
30
class
QWaylandScreen;
31
class
QWaylandSurfaceInputHandler;
32
class
QWaylandDisplay;
33
class
QWaylandWindow;
34
class
QWaylandDecorationSurface;
35
36
class
QWaylandSurface
:
public
QObject
,
public
QtWayland
::
wl_surface
37
{
38
Q_OBJECT
39
public
:
40
explicit
QWaylandSurface
(
QWaylandDisplay
*
display
);
41
~
QWaylandSurface
()
override
;
42
QWaylandScreen *
oldestEnteredScreen
();
43
QWaylandDecorationSurface *
decoration
()
const
44
{
45
if
(
auto
decoration = std::get_if<QWaylandDecorationSurface *>(&m_container))
46
return
*decoration;
47
return
nullptr
;
48
}
49
QWaylandWindow *
waylandWindow
()
const
50
{
51
if
(
auto
window = std::get_if<QWaylandWindow *>(&m_container))
52
return
*window;
53
return
nullptr
;
54
}
55
std
::
optional
<
int32_t
>
preferredBufferScale
()
const
{
return
m_preferredBufferScale; }
56
std
::
optional
<
wl_output_transform
>
preferredBufferTransform
()
const
{
return
m_preferredBufferTransform; }
57
58
static
QWaylandSurface
*
fromWlSurface
(::wl_surface *surface);
59
60
Q_SIGNALS
:
61
void
screensChanged
();
62
void
preferredBufferScaleChanged
();
63
void
preferredBufferTransformChanged
();
64
65
private
Q_SLOTS
:
66
void
handleScreenRemoved
(
QScreen
*
qScreen
);
67
68
protected
:
69
void
surface_enter
(
struct
::wl_output *output)
override
;
70
void
surface_leave
(
struct
::wl_output *output)
override
;
71
void
surface_preferred_buffer_scale
(int32_t scale)
override
;
72
void
surface_preferred_buffer_transform
(uint32_t transform)
override
;
73
74
QList
<
QWaylandScreen
*>
m_screens
;
//As seen by wl_surface.enter/leave events. Chronological order.
75
76
std
::variant<QWaylandWindow *, QWaylandDecorationSurface *>
m_container
=
static_cast
<
QWaylandWindow
*>(
nullptr
);
// what this surface is for
77
std
::
optional
<
int32_t
>
m_preferredBufferScale
;
78
std
::
optional
<
wl_output_transform
>
m_preferredBufferTransform
;
79
80
friend
class
QWaylandWindow;
81
friend
class
QWaylandDecorationSurface;
82
};
83
84
}
// namespace QtWaylandClient
85
86
QT_END_NAMESPACE
87
88
#
endif
// QWAYLANDSURFACE_P_H
QtWaylandClient::QWaylandShmBackingStore
Definition
qwaylandshmbackingstore_p.h:58
QtWaylandClient::QWaylandShmBuffer
Definition
qwaylandshmbackingstore_p.h:34
QtWaylandClient::QWaylandSurface
Definition
qwaylandsurface_p.h:37
QtWaylandClient::QWaylandSurface::m_screens
QList< QWaylandScreen * > m_screens
Definition
qwaylandsurface_p.h:74
QtWaylandClient::QWaylandSurface::~QWaylandSurface
~QWaylandSurface() override
Definition
qwaylandsurface.cpp:22
QtWaylandClient::QWaylandSurface::preferredBufferScaleChanged
void preferredBufferScaleChanged()
QtWaylandClient::QWaylandSurface::decoration
QWaylandDecorationSurface * decoration() const
Definition
qwaylandsurface_p.h:43
QtWaylandClient::QWaylandSurface::m_preferredBufferTransform
std::optional< wl_output_transform > m_preferredBufferTransform
Definition
qwaylandsurface_p.h:78
QtWaylandClient::QWaylandSurface::m_container
std::variant< QWaylandWindow *, QWaylandDecorationSurface * > m_container
Definition
qwaylandsurface_p.h:76
QtWaylandClient::QWaylandSurface::preferredBufferTransformChanged
void preferredBufferTransformChanged()
QtWaylandClient::QWaylandSurface::surface_preferred_buffer_transform
void surface_preferred_buffer_transform(uint32_t transform) override
Definition
qwaylandsurface.cpp:109
QtWaylandClient::QWaylandSurface::oldestEnteredScreen
QWaylandScreen * oldestEnteredScreen()
Definition
qwaylandsurface.cpp:27
QtWaylandClient::QWaylandSurface::preferredBufferScale
std::optional< int32_t > preferredBufferScale() const
Definition
qwaylandsurface_p.h:55
QtWaylandClient::QWaylandSurface::fromWlSurface
static QWaylandSurface * fromWlSurface(::wl_surface *surface)
Definition
qwaylandsurface.cpp:39
QtWaylandClient::QWaylandSurface::waylandWindow
QWaylandWindow * waylandWindow() const
Definition
qwaylandsurface_p.h:49
QtWaylandClient::QWaylandSurface::m_preferredBufferScale
std::optional< int32_t > m_preferredBufferScale
Definition
qwaylandsurface_p.h:77
QtWaylandClient::QWaylandSurface::preferredBufferTransform
std::optional< wl_output_transform > preferredBufferTransform() const
Definition
qwaylandsurface_p.h:56
QtWaylandClient::QWaylandSurface::surface_preferred_buffer_scale
void surface_preferred_buffer_scale(int32_t scale) override
Definition
qwaylandsurface.cpp:101
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
QtWaylandClient
Definition
qwaylandclientextension.h:16
QtWaylandClient::qtCursorShapeToWaylandShape
static QtWayland::wp_cursor_shape_device_v1::shape qtCursorShapeToWaylandShape(Qt::CursorShape cursorShape)
Definition
qwaylandcursor.cpp:225
QtWayland
Definition
qwaylanddisplay_p.h:54
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
qtbase
src
plugins
platforms
wayland
qwaylandsurface_p.h
Generated on
for Qt by
1.18.0