Qt en 2017

Après avoir lancé l’exercice l’année dernière, Tuukka Turunen (directeur de la recherche et du développement à la Qt Company) annonce la couleur pour les évolutions de Qt en 2017.

Un rythme d’une version mineure tous les six mois est maintenu : Qt 5.9 devrait arriver en version finale en mai (la préversion alpha est maintenant sortie), Qt 5.10 en novembre, Qt 5.11 en mai 2018. Il n’empêche que les développeurs sont bien connus pour exploser les délais donnés : Qt 5.8 est arrivé en janvier, alors qu’il était prévu en novembre. Pour éviter ces débordements, les fonctionnalités de Qt 5.9 sont déjà arrêtées : toute nouveauté proposée sera intégrée au plus tôt dans Qt 5.10.

Fonctionnalités de Qt 5.9

Qt 3D restera un grand chantier de Qt 5.9 : la première version utilisable par le grand public (Qt 3D 2.0) est arrivée avec Qt 5.7, l’itération suivante de Qt s’est focalisée sur l’amélioration de l’existant, tant en stabilité qu’en performance. Avec Qt 5.9, le cycle de développement repartira sur de nouvelles fonctionnalités : morphose, animation par images clés, utilisation de composants Qt Quick comme textures pour des éléments 3D, rendu physique, particules, pour les fonctionnalités principales.

La performance du rendu sera un point important. Les applications utilisant des shaders OpenGL bénéficieront d’un cache sur disque : par rapport à Qt 5.6, ces applications pourraient voir des accélérations d’un facteur dix pour le traitement de ces shaders, huit par rapport à Qt 5.8, sur bon nombre de plateformes embarquées.

Le moteur d’exécution de Qt Quick verra aussi des améliorations du côté du moteur de cache. Qt 5.8 avait proposé ce système de cache dans toutes les éditions (la fonctionnalité était autrefois réservée aux clients commerciaux), Qt 5.9 apportera une compilation en avance des fichiers QML et JS (similaire au Qt Quick Compiler, autrefois exclusivement commercial), qui sera encore améliorée avec Qt 5.10.

Les Qt Quick Controls 2 continuent leur petit bonhomme de chemin. MultiPointTouchArea détecte plusieurs points d’appui. ComboBox permet l’édition de la valeur sélectionnée.

Côté réseau, QNetworkAccessManager gère la politique HSTS (HTTP strict transport security), qui vérifie qu’un site Web ne change pas de certificat (ce qui indiquerait une copie). De nouvelles politiques de suivi automatique des redirections ont été ajoutées.

La compatibilité avec les Mac récents feront aussi un grand bon en avant, l’extension de plateforme sera mise à jour pour donner accès aux fonctionnalités les plus récentes. Côté Windows, Qt 5.9 sera compatible avec Visual C++ 2017 (en fonction des dates de sortie de la nouvelle version du compilateur, des binaires précompilés seront disponibles).

Qt 5.10 et après

Les priorités ne sont pas encore définies pour Qt 5.10, mais toute une série d’axes est déjà considérée. D’un côté, la documentation sera retravaillée : certaines parties ne sont plus à jour, des exemples ne montrent plus la meilleure manière de procéder. De manière générale, l’objectif sera de faciliter la prise en main de Qt pour les débutants.

Le contrôle à distance d’applications est possible depuis Qt 5.8, le lancement d’applications dans le navigateur par NaCl l’est depuis 2009, mais ces solutions ne conviennent pas à tous les cas. Un projet en cours propose d’exploiter le moteur de rendu OpenGL de Qt Quick pour envoyer toutes les commandes OpenGL à un navigateur, qui pourra afficher l’interface par WebGL.

Qt Quick devrait pouvoir afficher des formes arbitraires, avec un composant de dessin à base de chemins (similaire dans le principe à Canvas), avec une accélération matérielle. Le moteur de rendu OpenGL devrait également bénéficier de quelques optimisations rendues possibles par OpenGL ES 3.2 — sous la forme d’un nouveau moteur de rendu séparé de l’actual, c’est-à-dire qu’OpenGL ES 2.0 sera toujours la version minimale requise.

Source : Qt Roadmap for 2017.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s