KWin
Loading...
Searching...
No Matches
src
wayland
compositor.cpp
Go to the documentation of this file.
1
/*
2
SPDX-FileCopyrightText: 2014 Martin Gräßlin <mgraesslin@kde.org>
3
SPDX-FileCopyrightText: 2020 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
4
5
SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
6
*/
7
#include "
compositor.h
"
8
#include "
display.h
"
9
#include "
region_p.h
"
10
#include "
surface.h
"
11
12
#include "qwayland-server-wayland.h"
13
14
namespace
KWin
15
{
16
static
const
int
s_version = 6;
17
18
class
CompositorInterfacePrivate
:
public
QtWaylandServer::wl_compositor
19
{
20
public
:
21
CompositorInterfacePrivate
(
CompositorInterface
*
q
,
Display
*
display
);
22
23
CompositorInterface
*
q
;
24
Display
*
display
;
25
26
protected
:
27
void
compositor_create_surface
(Resource *resource, uint32_t
id
)
override
;
28
void
compositor_create_region
(Resource *resource, uint32_t
id
)
override
;
29
};
30
31
CompositorInterfacePrivate::CompositorInterfacePrivate
(
CompositorInterface
*q,
Display
*display)
32
: QtWaylandServer::wl_compositor(*display, s_version)
33
, q(q)
34
, display(display)
35
{
36
}
37
38
void
CompositorInterfacePrivate::compositor_create_surface
(Resource *resource, uint32_t
id
)
39
{
40
wl_resource *surfaceResource = wl_resource_create(resource->client(), &wl_surface_interface, resource->version(),
id
);
41
if
(!surfaceResource) {
42
wl_resource_post_no_memory(resource->handle);
43
return
;
44
}
45
Q_EMIT
q
->
surfaceCreated
(
new
SurfaceInterface
(
q
, surfaceResource));
46
}
47
48
void
CompositorInterfacePrivate::compositor_create_region
(Resource *resource, uint32_t
id
)
49
{
50
wl_resource *regionResource = wl_resource_create(resource->client(), &wl_region_interface, resource->version(),
id
);
51
if
(!regionResource) {
52
wl_resource_post_no_memory(resource->handle);
53
return
;
54
}
55
new
RegionInterface
(regionResource);
56
}
57
58
CompositorInterface::CompositorInterface
(
Display
*display, QObject *parent)
59
: QObject(parent)
60
, d(new
CompositorInterfacePrivate
(this, display))
61
{
62
}
63
64
CompositorInterface::~CompositorInterface
()
65
{
66
}
67
68
Display
*
CompositorInterface::display
()
const
69
{
70
return
d->display;
71
}
72
73
}
// namespace KWin
74
75
#include "wayland/moc_compositor.cpp"
KWin::CompositorInterface
Definition
compositor.h:26
KWin::CompositorInterface::~CompositorInterface
~CompositorInterface() override
Definition
compositor.cpp:64
KWin::CompositorInterface::display
Display * display() const
Definition
compositor.cpp:68
KWin::CompositorInterface::surfaceCreated
void surfaceCreated(KWin::SurfaceInterface *surface)
KWin::CompositorInterface::CompositorInterface
CompositorInterface(Display *display, QObject *parent=nullptr)
Definition
compositor.cpp:58
KWin::CompositorInterfacePrivate
Definition
compositor.cpp:19
KWin::CompositorInterfacePrivate::display
Display * display
Definition
compositor.cpp:24
KWin::CompositorInterfacePrivate::q
CompositorInterface * q
Definition
compositor.cpp:23
KWin::CompositorInterfacePrivate::compositor_create_region
void compositor_create_region(Resource *resource, uint32_t id) override
Definition
compositor.cpp:48
KWin::CompositorInterfacePrivate::compositor_create_surface
void compositor_create_surface(Resource *resource, uint32_t id) override
Definition
compositor.cpp:38
KWin::CompositorInterfacePrivate::CompositorInterfacePrivate
CompositorInterfacePrivate(CompositorInterface *q, Display *display)
Definition
compositor.cpp:31
KWin::Display
Class holding the Wayland server display loop.
Definition
display.h:34
KWin::RegionInterface
Definition
region_p.h:16
KWin::SurfaceInterface
Resource representing a wl_surface.
Definition
surface.h:80
display.h
KWin
Definition
activation_test.cpp:20
region_p.h
surface.h
compositor.h
Generated on Sat Feb 17 2024 01:42:10 for KWin by
1.10.0