Qt Gui can not depend on OpenGL in Qt 6 anymore. Move all the OpenGL related classes into the Qt OpenGL module. (or somewhere else if that's removed/deprecated)
To be done in line with QRhi's needs: this must not include things like QOpenGLContext, QOpenGL(Extra)Functions, and QOpenGLProgramBinaryCache, and all OpenGL-related QPA plumbing. Those are also dependencies for the RHI's OpenGL backend.
This is currently being done in smaller chunks:
done in reviews/waiting for coin
QOpenGLPaintEngine and related classes
QOpenGLTexture and related classes
QOpenGLTextureBlitter - Was used by QPlatformBackingStore,
decoupled in this patch and moved in this one
QOpenGLWidget Is currently in the QtOpenGL module, but should be moved to its own QtOpenGLWidgets module.
QOpenGLShaderProgram - Can be moved after QOpenGLTextureBlitter
QOpenGLVertexArrayObject - Can be moved after texture blitter
QOpenGLBuffer - Can be moved after texture blitter
QOpenGLVersionFunctions*: We're changing the API (source incompatible) slightly and moving these.
This leaves us with:
- QOpenGLContext - Used by RHI, if we wan't to remove it from public gui API, we need to make it private and provide a wrapper in the opengl module
- QOpenGLFunctions and QOpenGLExtraFunctions (non versioned) - These are used by RHI (same as QOpenGLContext)
I modeled the dependencies as I came across them:
The image is showing work of patches that I considered done (yellow boxes haven't passed reviews/CI yet).