45 Q_DECLARE_PRIVATE(QOpenGLContextGroup)
47 ~QOpenGLContextGroup();
49 QList<QOpenGLContext *> shares()
const;
51 static QOpenGLContextGroup *currentContextGroup();
54 QOpenGLContextGroup();
56 friend class QOpenGLContext;
57 friend class QOpenGLContextPrivate;
58 friend class QOpenGLContextGroupResourceBase;
59 friend class QOpenGLSharedResource;
60 friend class QOpenGLMultiGroupSharedResource;
69 Q_DECLARE_PRIVATE(QOpenGLContext)
71 explicit QOpenGLContext(QObject *parent =
nullptr);
74 void setFormat(
const QSurfaceFormat &format);
75 void setShareContext(QOpenGLContext *shareContext);
76 void setScreen(QScreen *screen);
81 QSurfaceFormat format()
const;
82 QOpenGLContext *shareContext()
const;
83 QOpenGLContextGroup *shareGroup()
const;
84 QScreen *screen()
const;
86 GLuint defaultFramebufferObject()
const;
88 bool makeCurrent(QSurface *surface);
91 void swapBuffers(QSurface *surface);
92 QFunctionPointer getProcAddress(
const QByteArray &procName)
const;
93 QFunctionPointer getProcAddress(
const char *procName)
const;
95 QSurface *surface()
const;
97 static QOpenGLContext *currentContext();
98 static bool areSharing(QOpenGLContext *first, QOpenGLContext *second);
100 QPlatformOpenGLContext *handle()
const;
101 QPlatformOpenGLContext *shareHandle()
const;
103 QOpenGLFunctions *functions()
const;
104 QOpenGLExtraFunctions *extraFunctions()
const;
106 QSet<QByteArray> extensions()
const;
107 bool hasExtension(
const QByteArray &extension)
const;
109 enum OpenGLModuleType {
114 static OpenGLModuleType openGLModuleType();
116 bool isOpenGLES()
const;
118 static bool supportsThreadedOpenGL();
119 static QOpenGLContext *globalShareContext();
121 QT_DECLARE_NATIVE_INTERFACE_ACCESSOR(QOpenGLContext)
124 void aboutToBeDestroyed();
127 friend class QOpenGLContextResourceBase;
128 friend class QOpenGLPaintDevice;
129 friend class QOpenGLGlyphTexture;
130 friend class QOpenGLTextureGlyphCache;
131 friend class QOpenGLEngineShaderManager;
132 friend class QOpenGLFramebufferObject;
133 friend class QOpenGLFramebufferObjectPrivate;
134 friend class QOpenGL2PaintEngineEx;
135 friend class QOpenGL2PaintEngineExPrivate;
136 friend class QSGDistanceFieldGlyphCache;
137 friend class QWidgetPrivate;
138 friend class QAbstractOpenGLFunctionsPrivate;
139 friend class QOpenGLTexturePrivate;
141 QOpenGLTextureHelper* textureFunctions()
const;
142 void setTextureFunctions(QOpenGLTextureHelper* textureFuncs, std::function<
void()> destroyCallback);
146 Q_PRIVATE_SLOT(d_func(),
void _q_screenDestroyed(QObject *object))
The QOpenGLContextGroup class represents a group of contexts sharing OpenGL resources....
QOpenGLContext * qt_gl_global_share_context()
void qt_gl_set_global_share_context(QOpenGLContext *context)
static QOpenGLContext * global_share_context