Modifications apportées à Qt OpenGL
Qt 6 résultent d’un effort délibéré visant à rendre le framework plus efficace et plus facile à utiliser.
Nous nous efforçons de maintenir la compatibilité binaire et source pour toutes les API publiques à chaque version. Cependant, certaines modifications étaient inévitables afin d’améliorer le framework Qt.
Dans cette rubrique, nous résumons ces modifications Qt OpenGLet fournissons des conseils pour les gérer.
Suppression des classes obsolètes
Le Qt OpenGL module a été déprécié tout au long du cycle de vie de Qt 5, et les classes qu’il contenait ont été supprimées dans Qt 6.
Cela concerne plus précisément les classes dont le nom commence par QGL.
Migration des classes QOpenGL
Dans Qt 5, un ensemble de classes de remplacement assurant la prise en charge d’OpenGL avait été ajouté à Qt GUI. Cette mesure visait à prendre en charge OpenGL en tant qu’API graphique multiplateforme servant de base aux fonctionnalités graphiques de Qt.
Dans Qt 6, celles-ci ont été migrées vers le Qt OpenGL module. Elles restent utilisables et sont entièrement prises en charge pour les applications dépendant 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 base, telles que Direct3D, Metal et Vulkan.
Le code des applications existantes continuera pour l’essentiel à fonctionner, mais devra désormais inclure Qt OpenGL dans les fichiers de projet, ainsi que les en-têtes si ceux-ci étaient auparavant inclus indirectement via Qt GUI.
Remarque : une exception notable est QOpenGLContext, qui réside toujours dans Qt GUI.
La classe QOpenGLWidgets
Une autre exception concerne la classe QOpenGLWidget. Celle-ci a été déplacée vers un nouveau module nommé Qt OpenGL Widgets et doit être incluse à partir de là.
Sélection du backend OpenGL pour RHI
Outre la modification des fichiers de projet et l’inclusion des en-têtes, l’application doit également définir manuellement le backend de rendu sur OpenGL afin de pouvoir utiliser cette fonctionnalité lors de l’utilisation d’ Qt Quick. Par défaut, Qt utilise l’API graphique la plus appropriée sur la plate-forme cible. Consultez la documentation sur le rendu RHI pour plus de détails.
Suppression d’ANGLE
Sous Windows, ANGLE, un convertisseur 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 aucun effet. Dans les builds OpenGL dynamiques, il n’y a pas de basculement automatique vers ANGLE en cas d’échec de l’initialisation d’OpenGL proprement dit. Pour les applications basées sur QWindow ou QWidget utilisant directement OpenGL, par exemple via QOpenGLWidget, cela signifie qu’OpenGL standard est la seule option disponible lors de l’exécution. Cependant, l’utilisation d’une implémentation purement logicielle d’OpenGL, telle que Mesa llvmpipe fournie avec les paquets Qt précompilés, reste possible.
Pour les applications 3D sous 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 Direct 3D par défaut ; par conséquent, l’impact de la suppression d’ANGLE est 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.