Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
WaylandEglStreamClientBufferIntegrationPrivate Class Reference
+ Collaboration diagram for WaylandEglStreamClientBufferIntegrationPrivate:

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 WaylandEglStreamClientBufferIntegrationPrivateget (WaylandEglStreamClientBufferIntegration *integration)
 

Public Attributes

EGLDisplay egl_display = EGL_NO_DISPLAY
 
bool display_bound = false
 
::wl_display * wlDisplay = nullptr
 
QOffscreenSurfaceoffscreenSurface = nullptr
 
QOpenGLContextlocalContext = nullptr
 
QMutex orphanedTexturesLock
 
QList< QOpenGLTexture * > orphanedTextures
 
QList< QMetaObject::ConnectionorphanedTexturesAboutToBeDestroyedConnection
 
WaylandEglStreamControllereglStreamController = nullptr
 
PFNEGLBINDWAYLANDDISPLAYWL egl_bind_wayland_display = nullptr
 
PFNEGLUNBINDWAYLANDDISPLAYWL egl_unbind_wayland_display = nullptr
 
PFNEGLQUERYWAYLANDBUFFERWL_compat egl_query_wayland_buffer = nullptr
 
QEGLStreamConveniencefuncs = nullptr
 

Static Public Attributes

static bool shuttingDown = false
 

Detailed Description

Definition at line 124 of file waylandeglstreamintegration.cpp.

Constructor & Destructor Documentation

◆ WaylandEglStreamClientBufferIntegrationPrivate()

WaylandEglStreamClientBufferIntegrationPrivate::WaylandEglStreamClientBufferIntegrationPrivate ( )
default

Member Function Documentation

◆ deleteGLTextureWhenPossible()

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().

+ Here is the call graph for this function:

◆ deleteOrphanedTextures()

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().

+ Here is the call graph for this function:

◆ deleteSpecificOrphanedTexture()

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ensureContext()

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ get()

static WaylandEglStreamClientBufferIntegrationPrivate * WaylandEglStreamClientBufferIntegrationPrivate::get ( WaylandEglStreamClientBufferIntegration integration)
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ handleEglstreamTexture()

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.

+ Here is the call graph for this function:

◆ initEglStream()

◆ setupBufferAndCleanup()

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ display_bound

bool WaylandEglStreamClientBufferIntegrationPrivate::display_bound = false

Definition at line 138 of file waylandeglstreamintegration.cpp.

◆ egl_bind_wayland_display

PFNEGLBINDWAYLANDDISPLAYWL WaylandEglStreamClientBufferIntegrationPrivate::egl_bind_wayland_display = nullptr

Definition at line 149 of file waylandeglstreamintegration.cpp.

◆ egl_display

EGLDisplay WaylandEglStreamClientBufferIntegrationPrivate::egl_display = EGL_NO_DISPLAY

Definition at line 137 of file waylandeglstreamintegration.cpp.

Referenced by handleEglstreamTexture(), and initEglStream().

◆ egl_query_wayland_buffer

PFNEGLQUERYWAYLANDBUFFERWL_compat WaylandEglStreamClientBufferIntegrationPrivate::egl_query_wayland_buffer = nullptr

Definition at line 151 of file waylandeglstreamintegration.cpp.

Referenced by initEglStream().

◆ egl_unbind_wayland_display

PFNEGLUNBINDWAYLANDDISPLAYWL WaylandEglStreamClientBufferIntegrationPrivate::egl_unbind_wayland_display = nullptr

Definition at line 150 of file waylandeglstreamintegration.cpp.

◆ eglStreamController

WaylandEglStreamController* WaylandEglStreamClientBufferIntegrationPrivate::eglStreamController = nullptr

Definition at line 147 of file waylandeglstreamintegration.cpp.

◆ funcs

QEGLStreamConvenience* WaylandEglStreamClientBufferIntegrationPrivate::funcs = nullptr

Definition at line 153 of file waylandeglstreamintegration.cpp.

Referenced by handleEglstreamTexture(), and initEglStream().

◆ localContext

QOpenGLContext* WaylandEglStreamClientBufferIntegrationPrivate::localContext = nullptr

◆ offscreenSurface

QOffscreenSurface* WaylandEglStreamClientBufferIntegrationPrivate::offscreenSurface = nullptr

Definition at line 140 of file waylandeglstreamintegration.cpp.

Referenced by ensureContext().

◆ orphanedTextures

QList<QOpenGLTexture *> WaylandEglStreamClientBufferIntegrationPrivate::orphanedTextures

◆ orphanedTexturesAboutToBeDestroyedConnection

QList<QMetaObject::Connection> WaylandEglStreamClientBufferIntegrationPrivate::orphanedTexturesAboutToBeDestroyedConnection

◆ orphanedTexturesLock

QMutex WaylandEglStreamClientBufferIntegrationPrivate::orphanedTexturesLock

◆ shuttingDown

bool WaylandEglStreamClientBufferIntegrationPrivate::shuttingDown = false
static

◆ wlDisplay

::wl_display* WaylandEglStreamClientBufferIntegrationPrivate::wlDisplay = nullptr

Definition at line 139 of file waylandeglstreamintegration.cpp.


The documentation for this class was generated from the following file: