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
//
5
// W A R N I N G
6
// -------------
7
//
8
// This file is not part of the Qt API. It exists purely as an
9
// implementation detail. This header file may change from version to
10
// version without notice, or even be removed.
11
//
12
// We mean it.
13
//
14
15
#
ifndef
QWAYLANDEGLWINDOW_H
16
#
define
QWAYLANDEGLWINDOW_H
17
18
#
include
<
QtWaylandClient
/
private
/
qwaylandwindow_p
.
h
>
19
#
include
"qwaylandeglinclude_p.h"
20
#
include
"qwaylandeglclientbufferintegration_p.h"
21
22
QT_BEGIN_NAMESPACE
23
24
class
QOpenGLFramebufferObject;
25
26
namespace
QtWaylandClient
{
27
28
class
QWaylandGLContext;
29
30
class
Q_WAYLANDCLIENT_EXPORT
QWaylandEglWindow
:
public
QWaylandWindow
31
{
32
Q_OBJECT
33
public
:
34
QWaylandEglWindow
(
QWindow
*
window
,
QWaylandDisplay
*
display
);
35
~
QWaylandEglWindow
();
36
WindowType
windowType
()
const
override
;
37
void
ensureSize
()
override
;
38
39
void
updateSurface
(
bool
create
);
40
QRect
contentsRect
()
const
;
41
42
EGLSurface
eglSurface
()
const
;
43
GLuint
contentFBO
()
const
;
44
GLuint
contentTexture
()
const
;
45
bool
needToUpdateContentFBO
()
const
{
return
decoration
() && (
m_resize
|| !
m_contentFBO
); }
46
47
void
bindContentFBO
();
48
49
void
invalidateSurface
()
override
;
50
51
QMutex
*
eglSurfaceLock
();
52
53
private
:
54
QWaylandEglClientBufferIntegration
*
m_clientBufferIntegration
=
nullptr
;
55
struct
wl_egl_window
*
m_waylandEglWindow
=
nullptr
;
56
57
// Locks any manipulation of the eglSurface size
58
QMutex
m_eglSurfaceLock
;
59
EGLSurface
m_eglSurface
=
EGL_NO_SURFACE
;
60
mutable
bool
m_resize
=
false
;
61
mutable
QOpenGLFramebufferObject
*
m_contentFBO
=
nullptr
;
62
63
// Size used in the last call to wl_egl_window_resize
64
QSize
m_requestedSize
;
65
66
// Size of the buffer used by QWaylandWindow
67
// This is always written to from the main thread, potentially read from the rendering thread
68
QReadWriteLock
m_bufferSizeLock
;
69
QSize
m_bufferSize
;
70
};
71
72
}
73
74
QT_END_NAMESPACE
75
76
#
endif
// QWAYLANDEGLWINDOW_H
QtWaylandClient::QWaylandEglClientBufferIntegration
Definition
qwaylandeglclientbufferintegration_p.h:31
QtWaylandClient::QWaylandEglWindow
Definition
qwaylandeglwindow_p.h:31
QtWaylandClient
Definition
qwaylandclientextension.h:15
QtWaylandClient::qwaylandegl_threadedgl_blacklist_vendor
static const char * qwaylandegl_threadedgl_blacklist_vendor[]
Definition
qwaylandeglclientbufferintegration.cpp:26
PFNEGLGETPLATFORMDISPLAYEXTPROC
EGLDisplay(* PFNEGLGETPLATFORMDISPLAYEXTPROC)(EGLenum platform, void *native_display, const EGLint *attrib_list)
Definition
qwaylandeglclientbufferintegration.cpp:15
EGL_PLATFORM_WAYLAND_KHR
#define EGL_PLATFORM_WAYLAND_KHR
Definition
qwaylandeglclientbufferintegration.cpp:19
qtwayland
src
hardwareintegration
client
wayland-egl
qwaylandeglwindow_p.h
Generated on Mon Mar 10 2025 00:55:12 for Qt by
1.13.2