1. Render loops.
2. QSGDepthStencilBuffer [DONE - Paul]
3. QSGGeometry [DONE - Paul]
just some small legacy extension checks
4. QSGTexture (coreapi) + QSGPlainTexture (util)
5. QSGDefaultPainterNode, Context2DTexture [DONE - Paul]
The Framebuffer mode is not implemented for RHI. So that path is full of direct OpenGL stuff. Should just remove that path completely. (the API in QQuickPaintedItem can remain, it will just have no effect for now - documentation update needed?)
6. QSGDefaultContext, QSGDefaultRenderContext [DONE - Laszlo]
qsgdefaultcontext.cpp - renderContextInitialized purge OpenGL path
qsgdefaultrendercontext.cpp lots of OpenGL-isms here and there, all can be removed
7. QSGMaterialShader [DONE - Laszlo]
Look for ### glpurge and remove the QT_CONFIG(opengl) bits in the header and in the cpp. Those should not be used anymore from within qtdeclarative. Documentation needs to be revised as well.
8. Default glyph node [DONE - Eirik]
qsgdefaultglyphnode_p.cpp - keep if (m_rhi) path remove the OpenGL one (everywhere)
9. qsgshaderrewriter removal (from qtdeclarative) [DONE]
This is not used anymore. The functionality is still there, but lives in qtshadertools. (there is a duplicated (but updated) version of this in qtshadertools, this code here is not used anymore). Can be removed.
10. Others [DONE - Eirik]
qsgadaptationlayer.cpp - QSG_DISTANCEFIELD_CACHE_DEBUG stuff
qsgdefaultspritenode.cpp - just an include (QOpenGLShaderProgram)
11. Why are there leftover legacy GLSL files in scenegraph/shaders? That folder should be empty now. Remove them. [DONE]
12. ShaderEffect related work handled separately in
QTBUG-84027 - qmake, CMake, and internal #if QT_CONFIG(opengl) update
This should be the final piece and is tricky. Traditional assumptions about !opengl meaning no accelerated 3D graphics (only software backend) do not hold anymore in Qt 6.
14. Remove the now-unused qsgshadersourcebuilder [DONE - Laszlo]
15. Porting guide updates. Materials and textures are mentioned already. [DONE - Laszlo]
To be added:
Deprecated QQuickWindow::createTextureFromId is removed.
QQuickPaintedItem and Context2D's FBO mode needs to be mentioned.
Not defaulting to OpenGL (Metal on macOS, D3D on Windows) needs to be mentioned (how to switch away with env.var or C++ API, etc.)
QQuickWindow::openGLContextCreated signal removed
QQuickWindow::setPersistentOpenGLContext function renaming
16. the compressed texture implementation has a QOpenGLTexture dependency just to get the format enum values. Would be nice to get rid of this. [DONE - Paul]
17. QQuickWindow public API:
- openglContextCreated signal, setPersistentOpenGLContext, openglContext() getter. [DONE - Laszlo]
Remove the signal, rename the function, make the context getter private.
- resetOpenGLState(). [DONE - Laszlo]
Can this really be removed? Used both internally in QQuickFbo and also common in applications that use QQuickFbo or the before/afterRendering signals.