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