46 Q_DECLARE_PRIVATE(QOpenGLContextGroup)
48 ~QOpenGLContextGroup();
50 QList<QOpenGLContext *> shares()
const;
52 static QOpenGLContextGroup *currentContextGroup();
55 QOpenGLContextGroup();
57 friend class QOpenGLContext;
58 friend class QOpenGLContextPrivate;
59 friend class QOpenGLContextGroupResourceBase;
60 friend class QOpenGLSharedResource;
61 friend class QOpenGLMultiGroupSharedResource;
70 Q_DECLARE_PRIVATE(QOpenGLContext)
72 explicit QOpenGLContext(QObject *parent =
nullptr);
75 void setFormat(
const QSurfaceFormat &format);
76 void setShareContext(QOpenGLContext *shareContext);
77 void setScreen(QScreen *screen);
82 QSurfaceFormat format()
const;
83 QOpenGLContext *shareContext()
const;
84 QOpenGLContextGroup *shareGroup()
const;
85 QScreen *screen()
const;
87 GLuint defaultFramebufferObject()
const;
89 bool makeCurrent(QSurface *surface);
92 void swapBuffers(QSurface *surface);
93 QFunctionPointer getProcAddress(
const QByteArray &procName)
const;
94 QFunctionPointer getProcAddress(
const char *procName)
const;
96 QSurface *surface()
const;
98 static QOpenGLContext *currentContext();
99 static bool areSharing(QOpenGLContext *first, QOpenGLContext *second);
101 QPlatformOpenGLContext *handle()
const;
102 QPlatformOpenGLContext *shareHandle()
const;
104 QOpenGLFunctions *functions()
const;
105 QOpenGLExtraFunctions *extraFunctions()
const;
107 QSet<QByteArray> extensions()
const;
108 bool hasExtension(
const QByteArray &extension)
const;
110 enum OpenGLModuleType {
115 static OpenGLModuleType openGLModuleType();
117 bool isOpenGLES()
const;
119 static bool supportsThreadedOpenGL();
120 static QOpenGLContext *globalShareContext();
122 QT_DECLARE_NATIVE_INTERFACE_ACCESSOR(QOpenGLContext)
125 void aboutToBeDestroyed();
128 friend class QOpenGLContextResourceBase;
129 friend class QOpenGLPaintDevice;
130 friend class QOpenGLGlyphTexture;
131 friend class QOpenGLTextureGlyphCache;
132 friend class QOpenGLEngineShaderManager;
133 friend class QOpenGLFramebufferObject;
134 friend class QOpenGLFramebufferObjectPrivate;
135 friend class QOpenGL2PaintEngineEx;
136 friend class QOpenGL2PaintEngineExPrivate;
137 friend class QSGDistanceFieldGlyphCache;
138 friend class QWidgetPrivate;
139 friend class QAbstractOpenGLFunctionsPrivate;
140 friend class QOpenGLTexturePrivate;
142 QOpenGLTextureHelper* textureFunctions()
const;
143 void setTextureFunctions(QOpenGLTextureHelper* textureFuncs, std::function<
void()> destroyCallback);
147 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