![]() |
Qt 6.x
The Qt SDK
|
Public Member Functions | |
WaylandEglStreamClientBufferIntegrationPrivate ()=default | |
bool | ensureContext () |
bool | initEglStream (WaylandEglStreamClientBuffer *buffer, struct ::wl_resource *bufferHandle) |
void | setupBufferAndCleanup (BufferState *bs, QOpenGLTexture *texture, int plane) |
void | handleEglstreamTexture (WaylandEglStreamClientBuffer *buffer) |
void | deleteGLTextureWhenPossible (QOpenGLTexture *texture, QOpenGLContext *ctx) |
void | deleteOrphanedTextures () |
void | deleteSpecificOrphanedTexture (QOpenGLTexture *texture) |
Static Public Member Functions | |
static WaylandEglStreamClientBufferIntegrationPrivate * | get (WaylandEglStreamClientBufferIntegration *integration) |
Public Attributes | |
EGLDisplay | egl_display = EGL_NO_DISPLAY |
bool | display_bound = false |
::wl_display * | wlDisplay = nullptr |
QOffscreenSurface * | offscreenSurface = nullptr |
QOpenGLContext * | localContext = nullptr |
QMutex | orphanedTexturesLock |
QList< QOpenGLTexture * > | orphanedTextures |
QList< QMetaObject::Connection > | orphanedTexturesAboutToBeDestroyedConnection |
WaylandEglStreamController * | eglStreamController = nullptr |
PFNEGLBINDWAYLANDDISPLAYWL | egl_bind_wayland_display = nullptr |
PFNEGLUNBINDWAYLANDDISPLAYWL | egl_unbind_wayland_display = nullptr |
PFNEGLQUERYWAYLANDBUFFERWL_compat | egl_query_wayland_buffer = nullptr |
QEGLStreamConvenience * | funcs = nullptr |
Static Public Attributes | |
static bool | shuttingDown = false |
Definition at line 124 of file waylandeglstreamintegration.cpp.
|
default |
void WaylandEglStreamClientBufferIntegrationPrivate::deleteGLTextureWhenPossible | ( | QOpenGLTexture * | texture, |
QOpenGLContext * | ctx | ||
) |
Definition at line 164 of file waylandeglstreamintegration.cpp.
References QOpenGLContext::aboutToBeDestroyed(), QObject::connect(), deleteSpecificOrphanedTexture(), Qt::DirectConnection, orphanedTextures, orphanedTexturesAboutToBeDestroyedConnection, orphanedTexturesLock, Q_ASSERT, and QList< T >::size().
void WaylandEglStreamClientBufferIntegrationPrivate::deleteOrphanedTextures | ( | ) |
Definition at line 177 of file waylandeglstreamintegration.cpp.
References QList< T >::clear(), con, QOpenGLContext::currentContext(), QObject::disconnect(), i, orphanedTextures, orphanedTexturesAboutToBeDestroyedConnection, orphanedTexturesLock, Q_ASSERT, Q_FUNC_INFO, qCDebug, qDeleteAll(), and QList< T >::size().
void WaylandEglStreamClientBufferIntegrationPrivate::deleteSpecificOrphanedTexture | ( | QOpenGLTexture * | texture | ) |
Definition at line 198 of file waylandeglstreamintegration.cpp.
References con, QObject::disconnect(), i, QListSpecialMethodsBase< T >::indexOf(), QList< T >::length(), orphanedTextures, orphanedTexturesAboutToBeDestroyedConnection, orphanedTexturesLock, Q_ASSERT, Q_FUNC_INFO, qCDebug, qCWarning, QList< T >::removeAt(), QList< T >::size(), and QList< T >::takeAt().
Referenced by deleteGLTextureWhenPossible().
bool WaylandEglStreamClientBufferIntegrationPrivate::ensureContext | ( | ) |
Definition at line 228 of file waylandeglstreamintegration.cpp.
References QOffscreenSurface::create(), QOpenGLContext::create(), QOpenGLContext::currentContext(), QOpenGLContext::format(), QOpenGLContext::globalShareContext(), localContext, QOpenGLContext::makeCurrent(), offscreenSurface, QOffscreenSurface::setFormat(), and QOpenGLContext::setShareContext().
Referenced by handleEglstreamTexture(), and initEglStream().
|
inlinestatic |
Definition at line 154 of file waylandeglstreamintegration.cpp.
References QScopedPointer< T, Cleanup >::data(), nullptr, and shuttingDown.
Referenced by WaylandEglStreamClientBuffer::~WaylandEglStreamClientBuffer(), WaylandEglStreamClientBuffer::setCommitted(), and WaylandEglStreamClientBuffer::toOpenGlTexture().
void WaylandEglStreamClientBufferIntegrationPrivate::handleEglstreamTexture | ( | WaylandEglStreamClientBuffer * | buffer | ) |
Definition at line 342 of file waylandeglstreamintegration.cpp.
References QOpenGLContext::doneCurrent(), egl_display, EGL_STREAM_STATE_KHR, EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR, ensureContext(), funcs, localContext, Q_FUNC_INFO, QEGLStreamConvenience::query_stream, qWarning, state, and QEGLStreamConvenience::stream_consumer_acquire.
bool WaylandEglStreamClientBufferIntegrationPrivate::initEglStream | ( | WaylandEglStreamClientBuffer * | buffer, |
struct ::wl_resource * | bufferHandle | ||
) |
Definition at line 294 of file waylandeglstreamintegration.cpp.
References QEGLStreamConvenience::create_stream_attrib_nv, QEGLStreamConvenience::create_stream_from_file_descriptor, QOpenGLContext::currentContext(), QEGLStreamConvenience::destroy_stream, QOpenGLContext::doneCurrent(), egl_display, egl_error_string(), EGL_NO_FILE_DESCRIPTOR_KHR, EGL_NO_STREAM_KHR, egl_query_wayland_buffer, EGL_TEXTURE_EXTERNAL_WL, EGL_WAYLAND_BUFFER_WL, EGL_WAYLAND_EGLSTREAM_WL, ensureContext(), funcs, GL_TEXTURE_EXTERNAL_OES, Qt::hex(), localContext, Q_ASSERT, Q_FUNC_INFO, qWarning, setupBufferAndCleanup(), state, and QEGLStreamConvenience::stream_consumer_gltexture.
void WaylandEglStreamClientBufferIntegrationPrivate::setupBufferAndCleanup | ( | BufferState * | bs, |
QOpenGLTexture * | texture, | ||
int | plane | ||
) |
Definition at line 251 of file waylandeglstreamintegration.cpp.
References QOpenGLContext::aboutToBeDestroyed(), QObject::connect(), QOpenGLContext::currentContext(), Qt::DirectConnection, Q_ASSERT, Q_FUNC_INFO, qCDebug, BufferState::textures, BufferState::texturesAboutToBeDestroyedConnection, BufferState::texturesContext, and BufferState::texturesLock.
Referenced by initEglStream().
bool WaylandEglStreamClientBufferIntegrationPrivate::display_bound = false |
Definition at line 138 of file waylandeglstreamintegration.cpp.
PFNEGLBINDWAYLANDDISPLAYWL WaylandEglStreamClientBufferIntegrationPrivate::egl_bind_wayland_display = nullptr |
Definition at line 149 of file waylandeglstreamintegration.cpp.
EGLDisplay WaylandEglStreamClientBufferIntegrationPrivate::egl_display = EGL_NO_DISPLAY |
Definition at line 137 of file waylandeglstreamintegration.cpp.
Referenced by handleEglstreamTexture(), and initEglStream().
PFNEGLQUERYWAYLANDBUFFERWL_compat WaylandEglStreamClientBufferIntegrationPrivate::egl_query_wayland_buffer = nullptr |
Definition at line 151 of file waylandeglstreamintegration.cpp.
Referenced by initEglStream().
PFNEGLUNBINDWAYLANDDISPLAYWL WaylandEglStreamClientBufferIntegrationPrivate::egl_unbind_wayland_display = nullptr |
Definition at line 150 of file waylandeglstreamintegration.cpp.
WaylandEglStreamController* WaylandEglStreamClientBufferIntegrationPrivate::eglStreamController = nullptr |
Definition at line 147 of file waylandeglstreamintegration.cpp.
QEGLStreamConvenience* WaylandEglStreamClientBufferIntegrationPrivate::funcs = nullptr |
Definition at line 153 of file waylandeglstreamintegration.cpp.
Referenced by handleEglstreamTexture(), and initEglStream().
QOpenGLContext* WaylandEglStreamClientBufferIntegrationPrivate::localContext = nullptr |
Definition at line 141 of file waylandeglstreamintegration.cpp.
Referenced by ensureContext(), handleEglstreamTexture(), and initEglStream().
QOffscreenSurface* WaylandEglStreamClientBufferIntegrationPrivate::offscreenSurface = nullptr |
Definition at line 140 of file waylandeglstreamintegration.cpp.
Referenced by ensureContext().
QList<QOpenGLTexture *> WaylandEglStreamClientBufferIntegrationPrivate::orphanedTextures |
Definition at line 144 of file waylandeglstreamintegration.cpp.
Referenced by deleteGLTextureWhenPossible(), deleteOrphanedTextures(), and deleteSpecificOrphanedTexture().
QList<QMetaObject::Connection> WaylandEglStreamClientBufferIntegrationPrivate::orphanedTexturesAboutToBeDestroyedConnection |
Definition at line 145 of file waylandeglstreamintegration.cpp.
Referenced by deleteGLTextureWhenPossible(), deleteOrphanedTextures(), and deleteSpecificOrphanedTexture().
QMutex WaylandEglStreamClientBufferIntegrationPrivate::orphanedTexturesLock |
Definition at line 143 of file waylandeglstreamintegration.cpp.
Referenced by deleteGLTextureWhenPossible(), deleteOrphanedTextures(), and deleteSpecificOrphanedTexture().
|
static |
Definition at line 158 of file waylandeglstreamintegration.cpp.
Referenced by WaylandEglStreamClientBufferIntegration::~WaylandEglStreamClientBufferIntegration(), and get().
::wl_display* WaylandEglStreamClientBufferIntegrationPrivate::wlDisplay = nullptr |
Definition at line 139 of file waylandeglstreamintegration.cpp.