Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
QtWaylandClient::QWaylandGLContext Class Reference

#include <qwaylandglcontext_p.h>

+ Inheritance diagram for QtWaylandClient::QWaylandGLContext:
+ Collaboration diagram for QtWaylandClient::QWaylandGLContext:

Public Member Functions

 QWaylandGLContext (EGLDisplay eglDisplay, QWaylandDisplay *display, const QSurfaceFormat &format, QPlatformOpenGLContext *share)
 
 ~QWaylandGLContext ()
 
void swapBuffers (QPlatformSurface *surface) override
 Reimplement in subclass to native swap buffers calls.
 
bool makeCurrent (QPlatformSurface *surface) override
 
void doneCurrent () override
 
void beginFrame () override
 Called when the RHI begins rendering a new frame in the context.
 
void endFrame () override
 Called when the RHI ends rendering a in the context.
 
GLuint defaultFramebufferObject (QPlatformSurface *surface) const override
 Reimplement in subclass if your platform uses framebuffer objects for surfaces.
 
QFunctionPointer getProcAddress (const char *procName) override
 Reimplement in subclass to allow dynamic querying of OpenGL symbols.
 
- Public Member Functions inherited from QEGLPlatformContext
 QEGLPlatformContext (const QSurfaceFormat &format, QPlatformOpenGLContext *share, EGLDisplay display, EGLConfig *config=nullptr, Flags flags={ })
 
 ~QEGLPlatformContext ()
 
void initialize () override
 Called after a new instance is constructed.
 
bool makeCurrent (QPlatformSurface *surface) override
 
void doneCurrent () override
 
void swapBuffers (QPlatformSurface *surface) override
 Reimplement in subclass to native swap buffers calls.
 
QFunctionPointer getProcAddress (const char *procName) override
 Reimplement in subclass to allow dynamic querying of OpenGL symbols.
 
QSurfaceFormat format () const override
 
bool isSharing () const override
 
bool isValid () const override
 
EGLContext nativeContext () const override
 
EGLConfig config () const override
 
EGLDisplay display () const override
 
virtual void invalidateContext () override
 
EGLContext eglContext () const
 
EGLDisplay eglDisplay () const
 
EGLConfig eglConfig () const
 
- Public Member Functions inherited from QPlatformOpenGLContext
 QPlatformOpenGLContext ()
 
virtual ~QPlatformOpenGLContext ()
 
virtual void initialize ()
 Called after a new instance is constructed.
 
virtual QSurfaceFormat format () const =0
 
virtual void swapBuffers (QPlatformSurface *surface)=0
 Reimplement in subclass to native swap buffers calls.
 
virtual GLuint defaultFramebufferObject (QPlatformSurface *surface) const
 Reimplement in subclass if your platform uses framebuffer objects for surfaces.
 
virtual bool makeCurrent (QPlatformSurface *surface)=0
 
virtual void doneCurrent ()=0
 
virtual void beginFrame ()
 Called when the RHI begins rendering a new frame in the context.
 
virtual void endFrame ()
 Called when the RHI ends rendering a in the context.
 
virtual bool isSharing () const
 
virtual bool isValid () const
 
virtual QFunctionPointer getProcAddress (const char *procName)=0
 Reimplement in subclass to allow dynamic querying of OpenGL symbols.
 
QOpenGLContextcontext () const
 

Protected Member Functions

EGLSurface eglSurfaceForPlatformSurface (QPlatformSurface *surface) override
 
EGLSurface createTemporaryOffscreenSurface () override
 
void destroyTemporaryOffscreenSurface (EGLSurface surface) override
 
- Protected Member Functions inherited from QEGLPlatformContext
 QEGLPlatformContext ()
 
virtual EGLSurface eglSurfaceForPlatformSurface (QPlatformSurface *surface)=0
 
virtual EGLSurface createTemporaryOffscreenSurface ()
 
virtual void destroyTemporaryOffscreenSurface (EGLSurface surface)
 
virtual void runGLChecks ()
 

Additional Inherited Members

- Public Types inherited from QEGLPlatformContext
enum  Flag { NoSurfaceless = 0x01 }
 
- Static Public Member Functions inherited from QEGLPlatformContext
template<typename T >
static QOpenGLContextcreateFrom (EGLContext context, EGLDisplay contextDisplay, EGLDisplay platformDisplay, QOpenGLContext *shareContext)
 
- Static Public Member Functions inherited from QPlatformOpenGLContext
static bool parseOpenGLVersion (const QByteArray &versionString, int &major, int &minor)
 

Detailed Description

Definition at line 34 of file qwaylandglcontext_p.h.

Constructor & Destructor Documentation

◆ QWaylandGLContext()

QtWaylandClient::QWaylandGLContext::QWaylandGLContext ( EGLDisplay  eglDisplay,
QWaylandDisplay display,
const QSurfaceFormat format,
QPlatformOpenGLContext share 
)

◆ ~QWaylandGLContext()

QtWaylandClient::QWaylandGLContext::~QWaylandGLContext ( )

Definition at line 265 of file qwaylandglcontext.cpp.

References QObject::disconnect(), and QEGLPlatformContext::eglDisplay().

+ Here is the call graph for this function:

Member Function Documentation

◆ beginFrame()

void QtWaylandClient::QWaylandGLContext::beginFrame ( )
overridevirtual

Called when the RHI begins rendering a new frame in the context.

Will always be paired with a call to \l endFrame().

Reimplemented from QPlatformOpenGLContext.

Definition at line 274 of file qwaylandglcontext.cpp.

References QtWaylandClient::QWaylandWindow::beginFrame(), and Q_ASSERT.

+ Here is the call graph for this function:

◆ createTemporaryOffscreenSurface()

EGLSurface QtWaylandClient::QWaylandGLContext::createTemporaryOffscreenSurface ( )
overrideprotectedvirtual

Reimplemented from QEGLPlatformContext.

Definition at line 243 of file qwaylandglcontext.cpp.

References QtWaylandClient::QWaylandDisplay::createSurface(), QEGLPlatformContext::eglConfig(), QEGLPlatformContext::eglDisplay(), and EGLSurface().

+ Here is the call graph for this function:

◆ defaultFramebufferObject()

GLuint QtWaylandClient::QWaylandGLContext::defaultFramebufferObject ( QPlatformSurface surface) const
overridevirtual

Reimplement in subclass if your platform uses framebuffer objects for surfaces.

The default implementation returns 0.

Reimplemented from QPlatformOpenGLContext.

Definition at line 380 of file qwaylandglcontext.cpp.

◆ destroyTemporaryOffscreenSurface()

void QtWaylandClient::QWaylandGLContext::destroyTemporaryOffscreenSurface ( EGLSurface  surface)
overrideprotectedvirtual

Reimplemented from QEGLPlatformContext.

Definition at line 256 of file qwaylandglcontext.cpp.

References QEGLPlatformContext::eglDisplay().

+ Here is the call graph for this function:

◆ doneCurrent()

void QtWaylandClient::QWaylandGLContext::doneCurrent ( )
overridevirtual

Reimplemented from QEGLPlatformContext.

Definition at line 336 of file qwaylandglcontext.cpp.

References QEGLPlatformContext::eglDisplay().

+ Here is the call graph for this function:

◆ eglSurfaceForPlatformSurface()

EGLSurface QtWaylandClient::QWaylandGLContext::eglSurfaceForPlatformSurface ( QPlatformSurface surface)
overrideprotectedvirtual

Implements QEGLPlatformContext.

Definition at line 393 of file qwaylandglcontext.cpp.

◆ endFrame()

void QtWaylandClient::QWaylandGLContext::endFrame ( )
overridevirtual

Called when the RHI ends rendering a in the context.

Is always preceded by a call to \l beginFrame().

Reimplemented from QPlatformOpenGLContext.

Definition at line 280 of file qwaylandglcontext.cpp.

References QtWaylandClient::QWaylandWindow::endFrame(), and Q_ASSERT.

+ Here is the call graph for this function:

◆ getProcAddress()

QFunctionPointer QtWaylandClient::QWaylandGLContext::getProcAddress ( const char *  procName)
overridevirtual

Reimplement in subclass to allow dynamic querying of OpenGL symbols.

As opposed to e.g. the wglGetProcAddress function on Windows, Qt expects this methods to be able to return valid function pointers even for standard OpenGL symbols.

Reimplemented from QEGLPlatformContext.

Definition at line 385 of file qwaylandglcontext.cpp.

◆ makeCurrent()

◆ swapBuffers()

void QtWaylandClient::QWaylandGLContext::swapBuffers ( QPlatformSurface surface)
overridevirtual

Reimplement in subclass to native swap buffers calls.

The implementation must support being called in a thread different than the gui-thread.

Reimplemented from QEGLPlatformContext.

Definition at line 341 of file qwaylandglcontext.cpp.

References QtWaylandClient::DecorationsBlitter::blit(), QEGLPlatformContext::eglDisplay(), EGLDisplay(), EGLSurface(), QEGLPlatformContext::format(), QSurfaceFormat::swapInterval(), and window().

+ Here is the call graph for this function:

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