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
waylandeglclientbufferintegration_p.h
Go to the documentation of this file.
1
// Copyright (C) 2017 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
5
//
6
// W A R N I N G
7
// -------------
8
//
9
// This file is not part of the Qt API. It exists purely as an
10
// implementation detail. This header file may change from version to
11
// version without notice, or even be removed.
12
//
13
// We mean it.
14
//
15
16
#
ifndef
WAYLANDEGLINTEGRATION_H
17
#
define
WAYLANDEGLINTEGRATION_H
18
19
#
include
<
QtWaylandCompositor
/
private
/
qwlclientbufferintegration_p
.
h
>
20
#
include
<
QtCore
/
QScopedPointer
>
21
#
include
<
QtCore
/
QPointer
>
22
#
include
<
QtWaylandCompositor
/
private
/
qwlclientbuffer_p
.
h
>
23
24
QT_BEGIN_NAMESPACE
25
26
class
WaylandEglClientBufferIntegrationPrivate;
27
28
class
Q_WAYLANDCOMPOSITOR_EXPORT
WaylandEglClientBufferIntegration
:
public
QObject,
public
QtWayland::ClientBufferIntegration
29
{
30
Q_DECLARE_PRIVATE(WaylandEglClientBufferIntegration)
31
public
:
32
WaylandEglClientBufferIntegration();
33
~WaylandEglClientBufferIntegration() override;
34
35
void
initializeHardware(
struct
::wl_display *display) override;
36
37
QtWayland::ClientBuffer *createBufferFor(wl_resource *buffer) override;
38
39
private
:
40
Q_DISABLE_COPY(WaylandEglClientBufferIntegration)
41
QScopedPointer<WaylandEglClientBufferIntegrationPrivate> d_ptr;
42
};
43
44
struct
BufferState
;
45
46
class
Q_WAYLANDCOMPOSITOR_EXPORT
WaylandEglClientBuffer
:
public
QtWayland::ClientBuffer
47
{
48
public
:
49
WaylandEglClientBuffer(WaylandEglClientBufferIntegration* integration, wl_resource *bufferResource);
50
~WaylandEglClientBuffer() override;
51
52
QWaylandBufferRef::BufferFormatEgl bufferFormatEgl()
const
override;
53
QSize size()
const
override;
54
QWaylandSurface::Origin origin()
const
override;
55
quintptr lockNativeBuffer() override;
56
void
unlockNativeBuffer(quintptr native_buffer)
const
override;
57
QOpenGLTexture *toOpenGlTexture(
int
plane) override;
58
void
setCommitted(QRegion &damage) override;
59
bool
isProtected() override;
60
61
private
:
62
friend
class
WaylandEglClientBufferIntegration;
63
friend
class
WaylandEglClientBufferIntegrationPrivate;
64
65
BufferState *d =
nullptr
;
66
QPointer<WaylandEglClientBufferIntegration> m_integration;
67
};
68
69
QT_END_NAMESPACE
70
71
#
endif
// WAYLANDEGLINTEGRATION_H
WaylandEglClientBufferIntegrationPrivate
Definition
waylandeglclientbufferintegration.cpp:144
WaylandEglClientBufferIntegrationPrivate::handleEglstreamTexture
void handleEglstreamTexture(WaylandEglClientBuffer *buffer, wl_resource *bufferHandle)
Definition
waylandeglclientbufferintegration.cpp:381
WaylandEglClientBufferIntegrationPrivate::localContext
QOpenGLContext * localContext
Definition
waylandeglclientbufferintegration.cpp:160
WaylandEglClientBufferIntegrationPrivate::get
static WaylandEglClientBufferIntegrationPrivate * get(WaylandEglClientBufferIntegration *integration)
Definition
waylandeglclientbufferintegration.cpp:172
WaylandEglClientBufferIntegrationPrivate::egl_create_image
PFNEGLCREATEIMAGEKHRPROC egl_create_image
Definition
waylandeglclientbufferintegration.cpp:166
WaylandEglClientBufferIntegrationPrivate::egl_destroy_image
PFNEGLDESTROYIMAGEKHRPROC egl_destroy_image
Definition
waylandeglclientbufferintegration.cpp:167
WaylandEglClientBufferIntegrationPrivate::egl_display
EGLDisplay egl_display
Definition
waylandeglclientbufferintegration.cpp:156
WaylandEglClientBufferIntegrationPrivate::gl_egl_image_target_texture_2d
PFNGLEGLIMAGETARGETTEXTURE2DOESPROC gl_egl_image_target_texture_2d
Definition
waylandeglclientbufferintegration.cpp:169
WaylandEglClientBufferIntegrationPrivate::display_bound
bool display_bound
Definition
waylandeglclientbufferintegration.cpp:157
WaylandEglClientBufferIntegrationPrivate::initEglTexture
void initEglTexture(WaylandEglClientBuffer *buffer, EGLint format)
Definition
waylandeglclientbufferintegration.cpp:189
WaylandEglClientBufferIntegrationPrivate::initEglStream
bool initEglStream(WaylandEglClientBuffer *buffer, struct ::wl_resource *bufferHandle)
Definition
waylandeglclientbufferintegration.cpp:329
WaylandEglClientBufferIntegrationPrivate::egl_unbind_wayland_display
PFNEGLUNBINDWAYLANDDISPLAYWL egl_unbind_wayland_display
Definition
waylandeglclientbufferintegration.cpp:163
WaylandEglClientBufferIntegrationPrivate::offscreenSurface
QOffscreenSurface * offscreenSurface
Definition
waylandeglclientbufferintegration.cpp:159
WaylandEglClientBufferIntegrationPrivate::initBuffer
void initBuffer(WaylandEglClientBuffer *buffer)
Definition
waylandeglclientbufferintegration.cpp:181
WaylandEglClientBufferIntegrationPrivate::registerBuffer
void registerBuffer(struct ::wl_resource *buffer, BufferState state)
WaylandEglClientBufferIntegrationPrivate::ensureContext
bool ensureContext()
Definition
waylandeglclientbufferintegration.cpp:263
WaylandEglClientBufferIntegrationPrivate::setupBufferAndCleanup
void setupBufferAndCleanup(BufferState *bs, QOpenGLTexture *texture, int plane)
Definition
waylandeglclientbufferintegration.cpp:286
WaylandEglClientBufferIntegrationPrivate::egl_bind_wayland_display
PFNEGLBINDWAYLANDDISPLAYWL egl_bind_wayland_display
Definition
waylandeglclientbufferintegration.cpp:162
WaylandEglClientBufferIntegrationPrivate::wlDisplay
::wl_display * wlDisplay
Definition
waylandeglclientbufferintegration.cpp:158
WaylandEglClientBufferIntegrationPrivate::WaylandEglClientBufferIntegrationPrivate
WaylandEglClientBufferIntegrationPrivate()
Definition
waylandeglclientbufferintegration.cpp:177
WaylandEglClientBufferIntegrationPrivate::funcs
QEGLStreamConvenience * funcs
Definition
waylandeglclientbufferintegration.cpp:171
WaylandEglClientBufferIntegrationPrivate::egl_query_wayland_buffer
PFNEGLQUERYWAYLANDBUFFERWL_compat egl_query_wayland_buffer
Definition
waylandeglclientbufferintegration.cpp:164
WaylandEglClientBufferIntegration
Definition
waylandeglclientbufferintegration_p.h:29
WaylandEglClientBuffer
Definition
waylandeglclientbufferintegration_p.h:47
GL_TEXTURE_EXTERNAL_OES
#define GL_TEXTURE_EXTERNAL_OES
Definition
qopengles2ext.h:272
BufferState
Definition
waylandeglclientbufferintegration.cpp:120
BufferState::egl_images
QVarLengthArray< EGLImageKHR, 3 > egl_images
Definition
waylandeglclientbufferintegration.cpp:130
BufferState::BufferState
BufferState()=default
BufferState::egl_format
EGLint egl_format
Definition
waylandeglclientbufferintegration.cpp:129
BufferState::texturesLock
QMutex texturesLock
Definition
waylandeglclientbufferintegration.cpp:134
BufferState::size
QSize size
Definition
waylandeglclientbufferintegration.cpp:139
BufferState::isYInverted
bool isYInverted
Definition
waylandeglclientbufferintegration.cpp:138
BufferState::texturesAboutToBeDestroyedConnection
QMetaObject::Connection texturesAboutToBeDestroyedConnection[3]
Definition
waylandeglclientbufferintegration.cpp:133
BufferState::eglMode
EglMode eglMode
Definition
waylandeglclientbufferintegration.cpp:140
BufferState::egl_stream
EGLStreamKHR egl_stream
Definition
waylandeglclientbufferintegration.cpp:136
BufferState::texturesContext
QOpenGLContext * texturesContext[3]
Definition
waylandeglclientbufferintegration.cpp:132
BufferState::EglMode
EglMode
Definition
waylandeglclientbufferintegration.cpp:123
BufferState::ModeEGLImage
@ ModeEGLImage
Definition
waylandeglclientbufferintegration.cpp:125
BufferState::ModeEGLStream
@ ModeEGLStream
Definition
waylandeglclientbufferintegration.cpp:126
BufferState::ModeUninitialized
@ ModeUninitialized
Definition
waylandeglclientbufferintegration.cpp:124
BufferState::textures
QOpenGLTexture * textures[3]
Definition
waylandeglclientbufferintegration.cpp:131
openGLFormatFromEglFormat
static QOpenGLTexture::TextureFormat openGLFormatFromEglFormat(EGLint format)
Definition
waylandeglclientbufferintegration.cpp:569
EGL_TEXTURE_Y_U_V_WL
#define EGL_TEXTURE_Y_U_V_WL
Definition
waylandeglclientbufferintegration.cpp:58
EGL_TEXTURE_EXTERNAL_WL
#define EGL_TEXTURE_EXTERNAL_WL
Definition
waylandeglclientbufferintegration.cpp:54
EGL_TEXTURE_RGB
#define EGL_TEXTURE_RGB
Definition
waylandeglclientbufferintegration.cpp:46
void
typedef void(GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC)(GLenum target
value
struct wl_resource EGLint EGLint * value
Definition
waylandeglclientbufferintegration.cpp:74
attrib_list
EGLContext EGLenum EGLClientBuffer const EGLint * attrib_list
Definition
waylandeglclientbufferintegration.cpp:82
EGLBoolean
typedef EGLBoolean(EGLAPIENTRYP PFNEGLQUERYWAYLANDBUFFERWL_compat)(EGLDisplay dpy
EGL_WAYLAND_BUFFER_WL
#define EGL_WAYLAND_BUFFER_WL
Definition
waylandeglclientbufferintegration.cpp:30
EGL_TEXTURE_Y_XUXV_WL
#define EGL_TEXTURE_Y_XUXV_WL
Definition
waylandeglclientbufferintegration.cpp:66
EGL_WAYLAND_Y_INVERTED_WL
#define EGL_WAYLAND_Y_INVERTED_WL
Definition
waylandeglclientbufferintegration.cpp:42
EGL_TEXTURE_RGBA
#define EGL_TEXTURE_RGBA
Definition
waylandeglclientbufferintegration.cpp:50
MYERRCODE
#define MYERRCODE(x)
EGL_WAYLAND_PLANE_WL
#define EGL_WAYLAND_PLANE_WL
Definition
waylandeglclientbufferintegration.cpp:38
EGLImageKHR
typedef EGLImageKHR(EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC)(EGLDisplay dpy
egl_error_string
static QT_BEGIN_NAMESPACE const char * egl_error_string(EGLint code)
Definition
waylandeglclientbufferintegration.cpp:94
formatFromEglFormat
static QWaylandBufferRef::BufferFormatEgl formatFromEglFormat(EGLint format)
Definition
waylandeglclientbufferintegration.cpp:550
EGL_TEXTURE_Y_UV_WL
#define EGL_TEXTURE_Y_UV_WL
Definition
waylandeglclientbufferintegration.cpp:62
EGL_WAYLAND_EGLSTREAM_WL
#define EGL_WAYLAND_EGLSTREAM_WL
Definition
waylandeglclientbufferintegration.cpp:34
buffer
struct wl_resource * buffer
Definition
waylandeglclientbufferintegration.cpp:74
attribute
struct wl_resource EGLint attribute
Definition
waylandeglclientbufferintegration.cpp:74
qtwayland
src
hardwareintegration
compositor
wayland-egl
waylandeglclientbufferintegration_p.h
Generated on
for Qt by
1.18.0