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