Changements apportés à Qt OpenGL
Qt 6 est le résultat d'un effort conscient pour rendre le framework plus efficace et plus facile à utiliser.
Nous essayons de maintenir la compatibilité binaire et source pour toutes les API publiques dans chaque version. Mais certains changements étaient inévitables dans un effort pour faire de Qt un meilleur framework.
Dans cette rubrique, nous résumons ces changements dans Qt OpenGLet fournissons des conseils pour les gérer.
Suppression des classes obsolètes
Le module Qt OpenGL était déprécié pendant la durée de vie de Qt 5, et les classes qu'il contenait ont été supprimées dans Qt 6.
Ceci se réfère spécifiquement aux classes préfixées par QGL.
Migration des classes QOpenGL
Dans Qt 5, un ensemble de classes de remplacement pour le support d'OpenGL a été ajouté à Qt Gui. Ceci afin de supporter OpenGL en tant qu'API graphique multiplateforme qui a servi de base pour les graphiques dans Qt.
Dans Qt 6, ces classes ont été migrées vers le module Qt OpenGL module. Ils sont toujours utilisables et entièrement supportés pour les applications qui dépendent directement d'OpenGL. Cependant, elles ne sont plus considérées comme fondamentales, puisque Qt a été étendu pour prendre en charge d'autres API graphiques dans sa fondation, telles que Direct3D, Metal et Vulkan.
Le code des applications existantes continuera en grande partie à fonctionner, mais devra désormais inclure Qt OpenGL dans les fichiers de projet, ainsi que les en-têtes s'ils étaient auparavant inclus indirectement via Qt GUI.
Note : Une exception notable est QOpenGLContext, qui réside toujours dans Qt Gui.
La classe QOpenGLWidgets
Une autre exception est la classe QOpenGLWidget. Elle a été déplacée dans un nouveau module nommé Qt OpenGL Widgets et devrait être incluse à partir de là.
Sélection du backend OpenGL pour RHI
En plus d'ajuster les fichiers de projet et d'inclure les en-têtes, l'application doit également définir manuellement le backend de rendu à OpenGL afin d'utiliser cette fonctionnalité lorsque l'on travaille avec Qt Quick. Par défaut, Qt utilisera l'API graphique la plus appropriée sur la plateforme cible. Voir la documentation sur le rendu RHI pour plus de détails.
Suppression d'ANGLE
Sous Windows, ANGLE, un traducteur tiers d'OpenGL ES vers Direct 3D, n'est plus inclus dans Qt 6. Cela signifie que Qt::AA_UseOpenGLES et la variable d'environnement QT_OPENGL=angle n'ont plus d'effet. Dans les versions dynamiques d'OpenGL, il n'y a pas de retour automatique à ANGLE dans le cas où OpenGL-proper ne parvient pas à s'initialiser. Pour les applications basées sur QWindow ou QWidget qui utilisent OpenGL directement, par exemple via QOpenGLWidget, cela signifie qu'OpenGL-proper est la seule option au moment de l'exécution. Cependant, l'utilisation d'une implémentation purement logicielle d'OpenGL, telle que Mesa llvmpipe qui est livrée avec les paquets Qt préconstruits, est toujours possible.
Pour les applications 3D Qt Quick et Qt Quick, Qt 6 introduit la prise en charge de Direct 3D 11, Vulkan et Metal, en plus d'OpenGL. Sous Windows, Qt 6 utilise par défaut Direct 3D, l'effet de la suppression d'ANGLE est donc atténué par l'ajout de la prise en charge d'autres API graphiques.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.