4#ifndef QEGLPLATFORMCONTEXT_H
5#define QEGLPLATFORMCONTEXT_H
18#include <QtCore/qtextstream.h>
19#include <qpa/qplatformwindow.h>
20#include <qpa/qplatformopenglcontext.h>
21#include <QtCore/qvariant.h>
22#include <QtGui/private/qt_egl_p.h>
23#include <QtGui/private/qopenglcontext_p.h>
28 public QNativeInterface::QEGLContext
47 if (contextDisplay != platformDisplay) {
48 qWarning(
"QEGLPlatformContext: Cannot adopt context from different display");
56 auto *platformContext =
new T;
57 platformContext->adopt(
context, contextDisplay, shareHandle);
58 contextPrivate->adopt(platformContext);
59 return resultingContext;
71 bool isSharing()
const override {
return m_shareContext != EGL_NO_CONTEXT; }
72 bool isValid()
const override {
return m_eglContext != EGL_NO_CONTEXT && !m_markedInvalid; }
75 EGLConfig
config()
const override {
return eglConfig(); }
80 EGLContext eglContext()
const;
82 EGLConfig eglConfig()
const;
87 virtual EGLSurface createTemporaryOffscreenSurface();
88 virtual void destroyTemporaryOffscreenSurface(
EGLSurface surface);
89 virtual void runGLChecks();
93 void updateFormatFromGL();
95 EGLContext m_eglContext;
96 EGLContext m_shareContext;
98 EGLConfig m_eglConfig;
101 int m_swapInterval = -1;
102 bool m_swapIntervalEnvChecked =
false;
103 int m_swapIntervalFromEnv = -1;
105 bool m_ownsContext =
false;
108 bool m_markedInvalid =
false;
An EGL context implementation.
EGLDisplay display() const override
bool isSharing() const override
EGLContext nativeContext() const override
virtual void invalidateContext() override
static QOpenGLContext * createFrom(EGLContext context, EGLDisplay contextDisplay, EGLDisplay platformDisplay, QOpenGLContext *shareContext)
virtual EGLSurface eglSurfaceForPlatformSurface(QPlatformSurface *surface)=0
EGLConfig config() const override
bool isValid() const override
static QOpenGLContextPrivate * get(QOpenGLContext *context)
QPlatformOpenGLContext * handle() const
Returns the underlying platform context.
The QPlatformOpenGLContext class provides an abstraction for native GL contexts.
virtual void initialize()
Called after a new instance is constructed.
virtual QSurfaceFormat format() const =0
friend class QOpenGLContext
virtual bool makeCurrent(QPlatformSurface *surface)=0
virtual void swapBuffers(QPlatformSurface *surface)=0
Reimplement in subclass to native swap buffers calls.
virtual void doneCurrent()=0
struct wl_display * display
Combined button and popup list for selecting options.
typedef EGLSurface(EGLAPIENTRYP PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC)(EGLDisplay dpy
typedef EGLDisplay(EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYEXTPROC)(EGLenum platform
#define Q_DECLARE_FLAGS(Flags, Enum)
#define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags)
GLint GLsizei GLsizei GLenum format
const void * getProcAddress