Compatibilité avec Windows 10

L’actualité Windows est actuellement trépidante, les détails sur la nouvelle version du système d’exploitation arrivant régulièrement, en prévision d’une sortie officielle cet été. Quel degré de compatibilité Qt propose-t-il avec cette nouvelle version ? Toutes les applications Qt qui fonctionnaient sur les versions précédentes de Windows continueront à tourner, sans limitation, qu’il s’agit d’applications traditionnelles (Win32) ou modernes (WinRT, Windows Store).

Par contre, ces applications pourraient présenter des dysfonctionnements par rapport aux nouvelles fonctionnalités, comme le mode fenêtré des applications modernes (elles ne sont plus limitées au plein écran) : les versions actuelles de Qt présentent quelques défauts lors du redimensionnement, qui seront corrigés avec Qt 5.5 ; également, le style n’est pas automatiquement adapté à WinRT. Qt est d’ores et déjà testé avec les préversions de Visual Studio 2015, même si le support officiel ne sera disponible qu’à sa version finale (Qt 5.5 devrait être disponible avant Windows 10 et Visual Studio 2015).

Comme toujours avec Qt, le même code pourra être utilisé pour plusieurs déploiements d’une même application : le même code pourra servir pour OS X, Linux, Windows, mais également pour WinRT.

Une nouveauté non technique du port de Qt 5.5 vers WinRT sera la licence, comme pour de précédents modules : il s’agira d’une double licence LGPL 3-GPL 2+ (en plus d’une licence commerciale), compatible avec les termes et conditions de déploiement sur le Windows Store.

Source : Windows 10 Support in Qt

Sortie de qbs 1.4.0

qbs est un système de compilation prévu pour remplacer qmake pour les projets Qt. La description des projets se fait en QML. L’outil est certes prévu pour Qt, mais a une vocation plus généraliste : il peut être utilisé pour tout type de projet C++ (comme qmake).

La version 1.4.0 vient avec quelques nouveautés intéressantes, comme l’ajout de projets Android : qbs est maintenant capable de compiler des projets pour Android, qu’ils contiennent du code natif ou non (tant avec le SDK que le NDK, donc) ; cette fonctionnalité n’a pour le moment rien de spécifique à Qt et n’est pas intégrée à Qt Creator.

Un module d’archivage fait son apparition, afin de générer des fichiers compressés après la compilation à partir d’une liste de fichiers à inclure. La propriété builtByDefault permet d’indiquer qu’un produit ne doit pas être compilé, à moins d’être explicitement demandé ; elle sert notamment à lancer des séries de test, comme la cible check de nombreux Makefile.

Source : qbs 1.4.0 released

Qt Creator 3.4.0

La nouvelle version de Qt Creator, numérotée 3.4.0, vient d’arriver. Elle se focalise sur le peaufinage de l’existant, avec des corrections de défauts (notamment au niveau du débogueur) et des améliorations du code interne, tout en apportant quelques nouvelles fonctionnalités.

Côté C++, une nouvelle action de refactorisation a été ajoutée pour déplacer les définitions de fonction en dehors d’une définition de classe ; également, l’autocomplétion propose maintenant la nouvelle syntaxe pour la connexion entre signaux et slots arrivée avec Qt 5. Un nouveau filtre propose également de signaler tous les fichiers C et C++ inclus dans le projet, même sans être explicitement mentionnés.

L’intégration Android est désormais compatible avec les chaînes de compilation 64 bits. Le développement sur des plateformes embarqués sans Qt (bare metal) peut être fait avec des projets génériques.

Clang se fait une place plus importante dans l’EDI : son analyseur statique n’est plus considéré comme expérimental, il peut d’ailleurs être utilisé en combinaison avec les compilateurs Visual C++ et MinGW.

Sources : Qt Creator 3.4.0 released, Qt Creator 3.4 RC1 released, Qt Creator 3.4 beta1 released.
Voir aussi : les notes de version.

PhysX sur GitHub : quelques nouveautés

Quelques nouveautés du côté de PhysX et de l’ouverture de son code (sans qu’on puisse parler de logiciel libre, toutefois). Le premier élément tient plus de l’ordre du détail : le dépôt GitHub précédent est déprécié au profit d’un dépôt par version majeure. PhysX-3.3 ne contiendra donc que PhysX 3.3 (et les diverses mises à jour, probablement), un nouveau dépôt sera créé pour la branche 3.4.

Ce nouveau dépôt contient maintenant les sources nécessaires à la compilation de PhysX pour iOS, ainsi que celles des exemples livrés avec le SDK. Plus intéressant : dans les semaines à venir, NVIDIDA proposera un contrat de licence pour les contributeurs. En conséquence, les développeurs de PhysX pourront recevoir et accepter des pull requests de la part d’utilisateurs de PhysX, ce qui ouvre le développement du moteur à un public plus large, tout comme Unreal Engine 4.

Source : New Github Repo: PhysX-3.3. Old repo PhysX is deprecated!

Qt Installer Framework 2.0

Le Qt Installer Framework est une brique logicielle prévue pour créer des installateurs, tant en ligne que hors ligne, pour Windows, Linux et OS X, en gérant les mises à jour. Bien que focalisé sur Qt, l’outil est suffisamment générique pour des applications ne l’utilisant pas.

La version 2.0 vient de sortir, avec quelques nouvelles fonctionnalités. La raison principale pour le changement de version majeure est que cet outil est maintenant compilé avec Qt 5 plutôt que Qt 4. La compatibilité a été préservée par rapport à la version précédente : il devrait être possible de mettre à jour une installation réalisée avec QIF 1.6 avec un installateur basé sur cette nouvelle version.

Notamment, le moteur JavaScript précédemment utilisé, Qt Script, a été remplacé par celui de Qt Quick, en gardant la compatibilité avec les scripts existants. Aussi, il devient possible de lancer des installations sans aucune interface graphique.

Télécharger Qt Installer Framework 2.0.
Voir aussi : les notes de version.
Source : Qt Installer Framework 2.0 Released

PEEL, un outil de comparaison de moteurs physiques

NVIDIA avait développé un outil pour comparer les performances de différents moteurs physiques, notamment pour situer son moteur maison (PhysX) par rapport à la concurrence, mais aussi pour repérer les régressions en performances (certaines ont déjà été repérées pour PhysX 3.4 et sont en cours de correction). Il avait déjà été utilisé pour la sortie de PhysX 3.3. Cet outil, nommé PEEL, est maintenant disponible gratuitement pour tous, sources incluses (sous une licence zlib). Des binaires sont fournis pour Windows.

Une série de moteurs est déjà incluse dans la distribution : Newton (3.13, 3.9), Bullet (2.79, 2.81, 2.82) et PhysX (2.8.4, 3.1, 3.2, 3.3.0, 3.3.1, 3.3.2, 3.4). Les sources pour intégrer Havok (6.6.0, 2011.3.0, 2011.3.1, 2012.1.0, 2012.2.0, 2013.1.0) sont incluses, mais pas de source ou de binaire pour Havok lui-même, pour des raisons de licence.

Télécharger PEEL.

Source : http://physxinfo.com/news/12580/physics-engine-evaluation-lab-peel-is-released/.

Intégration de PhysX et GameWorks dans Unreal Engine 4

Depuis Unreal Engine 3 et UDK, Epic utilise le moteur physique PhysX, développé par NVIDIA. Unreal Engine 4 en utilise d’ailleurs la dernière mouture (la série 3.x). Depuis lors, NVIDIA a lancé une série de nouvelles briques logicielles dans le domaine de la simulation physique sous l’ombrelle GameWorks.

L’une de ces briques est une réflexion de fond sur la manière d’exploiter les GPU pour la simulation multiphysique en temps réel, avec des couplages entre tous les types de simulation : des interactions entre solides (déformables ou non), liquides et tissus, chaque type d’objet étant régi par des systèmes d’équations différents. NVIDIA FleX unifie toutes ces problématiques en considérant chaque objet comme un ensemble de particules. Après quelques années de développement et des démonstrations dont les principaux intérêts sont techniques (couplages en temps réel), la version 0.25 dispose maintenant d’une intégration (certes encore expérimentale et incomplète) dans Unreal Engine 4.

Les sources de l’intégration sont disponibles sur un dépôt Git, accessible sous les mêmes conditions que les sources d’Unreal Engine 4. D’autres modules de GameWorks sont en cours d’intégration : HBAO+, VXGI, Vehicles et WaveWorks sont d’ores et déjà disponibles, toujours en tant qu’intégrations expérimentales, toujours uniquement pour Windows.

Il est prévu d’ajouter d’autres modules dans les mois à venir, comme HairWorks ou Turf Effects. Certains modules ont besoin d’un GPU NVIDIA, d’autres se satisfont d’un GPU DirectX 11.

Source : NVIDIA GameWorks Integration, le clone NVIDIA du dépôt Unreal Engine.

Les sources de PhysX disponibles gratuitement

Peu après Unreal Engine 4, voici que son moteur physique, PhysX, développé par NVIDIA, se met à la même mode : son code source est gratuitement disponible. Bien évidemment, le projet ne devient pas libre pour autant : il est nécessaire de s’enregistrer sur le site de NVIDIA avant d’avoir accès aux sources.

Ce moteur physique est disponible pour les plateformes Windows, Linux, OS X et Android (en plus des consoles de jeux, mais elles sont exclues de cette ouverture) et est utilisé dans plus de cinq cents jeux. Il était déjà gratuit pour des utilisations, commerciales ou non.

L’ouverture concerne principalement le moteur physique, mais également le débogueur visuel (PVD) et quelques modules APEX : Clothing, Destructible et Emitter. Il s’agit de la version 3.3.3 (PhysX) et 1.3.3 (APEX), c’est-à-dire la prochaine version. Parmi les fonctionnalités disponibles, on compte les corps rigides, les collisions, la gestion des personnages, des particules et des véhicules, en plus des tissus et objets déformables, notamment.

Le dépôt GitHub n’est cependant pas celui de développement : il ne contient que huit commits depuis fin janvier. Le code CUDA, qui déporte une partie des calculs sur le GPU, est bien évidemment de la partie.

Sources : https://developer.nvidia.com/content/latest-physx-source-code-now-available-free-github, http://physxinfo.com/.

Aperçu des nouvelles fonctionnalités prévues pour Qt 5.5

Bien que la liste ne soit pas complètement figée, Qt 5.5 devrait venir avec une série de nouvelles fonctionnalités. La principale est l’ajout du module Qt 3D, sans être finalisé (technology preview), un ambitieux projet remontant à l’époque Qt Mobility et Qt 4.8, qui facilite l’intégration de contenu 3D dans des applications Qt, tout en gardant des API C++ et Qt Quick. Il s’agit d’un moteur de rendu 3D prévu pour l’extensibilité : son architecture devrait s’accommoder de tout besoin au niveau du rendu de scènes 3D.

Un autre morceau de Qt Mobility, Qt Location, fait son retour dans Qt 5. Là où Qt Positionning fournit la position de l’utilisateur, Qt Location en facilitera l’exploitation, comme la gestion des itinéraires, la navigation, la recherche de lieux, etc.

L’édition commerciale fournit le module Qt Quick Entreprise Controls, avec des composants bien utiles comme des jauges (verticales ou circulaires), des cadrans, des indicateurs de statut ou encore des boutons à bascule. Toutes ces fonctionnalités (et d’autres encore, comme une vue en arbre) seront ajoutées au module Qt Quick Controls de l’édition libre, sous le nom de Qt Quick Extras.

Les amateurs de vidéos pourront se réjouir de la gestion de GStreamer 1.0 : jusqu’à présent, seules les versions 0.10 étaient prises en charge (plus aucune mise à jour n’a été réalisée depuis 2012). Ainsi, le décodage de vidéos pourra être accéléré sur le GPU, par exemple. Ces améliorations de performances n’ont pu se faire que par des modifications importantes au niveau de la structure du code de GStreamer, causant des difficultés pour la mise à jour côté Qt. Cependant, la version utilisée par défaut lors de la compilation est toujours la 0.10.

D’autres modules devraient être dépréciés, comme Qt WebKit (en cours de remplacement par Qt WebEngine), Qt Declarative (remplacé par Qt Quick 2) et Qt Script (remplacé par le moteur de script de Qt Quick2 ). Ils pourraient ne plus être inclus dans les paquets binaires dès Qt 5.6.

Comme pour Qt 5.4, ces nouveaux modules sont disponibles sous les licences GPL2 et LGPL3, en plus d’une offre commerciale.

Sources : Licensing of new modules in Qt 5.5, Qt3D: wip/newapi branch is dead. Long live dev!, Qt 5.5 Is Packing On New Features, Going Into Feature Freeze Soon, What is new in Qt 5.5, Deprecating modules with 5.5.

CUDA 7 RC

CUDA 7, dont la RC vient de sortir, est présentée par NVIDIA comme une « mise à jour importante de la plateforme ». Outre les habituelles améliorations de performances, du côté des plateformes, l’architecture IBM POWER sera maintenant gérée dans toutes les versions du SDK (seule la version 5.5 était disponible) — ce qui n’est pas étonnant, NVIDIA étant membre de la fondation OpenPOWER.

Lire la suite