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
qwaylandeglwindow_p.h
Go to the documentation of this file.
1
// Copyright (C) 2016 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
#
pragma
once
6
7
#
include
<
QtWaylandClient
/
private
/
qwaylandwindow_p
.
h
>
8
#
include
"qwaylandeglclientbufferintegration_p.h"
9
10
QT_BEGIN_NAMESPACE
11
12
class
QOpenGLFramebufferObject;
13
14
namespace
QtWaylandClient
{
15
16
class
QWaylandGLContext;
17
18
class
Q_WAYLANDCLIENT_EXPORT
QWaylandEglWindow
:
public
QWaylandWindow
19
{
20
Q_OBJECT
21
public
:
22
QWaylandEglWindow
(
QWindow
*
window
,
QWaylandDisplay
*
display
);
23
~
QWaylandEglWindow
();
24
WindowType
windowType
()
const
override
;
25
void
ensureSize
()
override
;
26
QSize
bufferSize
()
const
;
27
28
void
createSurface
(
const
QSize
&
initialSize
);
29
void
updateSurfaceSize
(
const
QSize
&
bufferSize
);
30
31
EGLSurface
eglSurface
()
const
;
32
33
void
invalidateSurface
()
override
;
34
35
QMutex
*
eglSurfaceLock
();
36
37
private
:
38
QWaylandEglClientBufferIntegration
*
m_clientBufferIntegration
=
nullptr
;
39
struct
wl_egl_window
*
m_waylandEglWindow
=
nullptr
;
40
41
// Locks any manipulation of the eglSurface size
42
QMutex
m_eglSurfaceLock
;
43
EGLSurface
m_eglSurface
=
EGL_NO_SURFACE
;
44
mutable
bool
m_resize
=
false
;
45
46
// Size of the buffer used by QWaylandWindow
47
// This is always written to from the main thread, potentially read from the rendering thread
48
mutable
QReadWriteLock
m_bufferSizeLock
;
49
QSize
m_bufferSize
;
50
51
// Size used in the last call to wl_egl_window_resize, only updated from the rendering thread
52
QSize
m_appliedBufferSize
;
53
};
54
55
}
56
57
QT_END_NAMESPACE
QtWaylandClient::QWaylandEglWindow
Definition
qwaylandeglwindow_p.h:19
QtWaylandClient
Definition
qwaylandclientextension.h:16
QtWaylandClient::qwaylandegl_threadedgl_blacklist_vendor
static const char * qwaylandegl_threadedgl_blacklist_vendor[]
Definition
qwaylandeglclientbufferintegration.cpp:28
EGL_PLATFORM_WAYLAND_KHR
#define EGL_PLATFORM_WAYLAND_KHR
Definition
qwaylandeglclientbufferintegration.cpp:21
PFNEGLGETPLATFORMDISPLAYEXTPROC
EGLDisplay(*) PFNEGLGETPLATFORMDISPLAYEXTPROC(EGLenum platform, void *native_display, const EGLint *attrib_list)
Definition
qwaylandeglclientbufferintegration.cpp:17
qtbase
src
plugins
platforms
wayland
plugins
hardwareintegration
wayland-egl
qwaylandeglwindow_p.h
Generated on
for Qt by
1.18.0