Orientation de l’écran en QML

Au lancement d’une application sur un périphérique mobile, il est souvent utile de détecter l’orientation de l’écran pour adapter la disposition visuelle. Malheureusement, QML n’est pas encore capable de détecter cette orientation lui-même. Cet article explique comment utiliser l’API de capteurs de QtMobility (Sensors) en QML.

Orientation de l’écran en QML

Advertisements

GDC 2012 et PhysX/APEX

Lors de la Game Developer Conference, il eut été dommage de se priver de quelques nouveautés côté PhysX. Non, les simulations physiques n’étaient pas en reste.

De la simulation de fourrure et de la destruction en temps réel

Ce personnage très laineux est fait de 840 000 particules, simulées comme 100 000 fils. Cette partie de la démo se base sur un solveur encore actuellement en recherche, bien que les résultats soient d’ores et déjà prometteurs.

Le module Destruction d’APEX sera aussi agrémenté d’un module de destruction en temps réel, puisqu’il n’utilise actuellement que des modèles préfracturés – gageons que les applications qui l’utiliseront auront des destructions beaucoup plus naturelles et immersives.

Continue reading “GDC 2012 et PhysX/APEX”

Implémentation d’une table de hachage à référence faible avec Qt

Une table de hachage à référence faible contient des paires clé-valeur sans que l’on puisse les atteindre. On en recense quatre types :

  • la clé est une référence faible ;
  • la valeur est une référence faible ;
  • la clé ou la valeur est une référence faible ;
  • la clé et la valeur sont des références faibles.

Dans cet article, on propose une implémentation basée sur Qt pour le second type : une table de hachage où la valeur est une référence faible. Ceci signifie qu’une paire clé-valeur sera automatiquement enlevées de la table dès que la valeur ne sera plus utilisée dans le programme.

Ce type de structure est utile pour réduire l’utilisation mémoire en partageant les structures de données sans fuite de mémoire.

Implémentation d’une table de hachage à référence faible avec Qt

Qt Creator 2.5 est sorti en beta

Suite à la sortie de Qt Creator 2.5 en beta, il est grand temps de faire le tour de quelques nouveautés, sans toutes les passer en revue.

C++11

Publié en septembre dernier, le standard ISO C++11 se doit d’avoir un meilleur support dans l’EDI ; notamment, on trouvera les mots-clés nullptr, constexpr, static_assert, noexcept et auto, ainsi que les espaces de noms en ligne et les lambdas (partiellement).

De même, quelques nouvelles actions de refactorisation sont disponibles : insertion d’un #include pour les identifiants indéfinis, extraction de fonction, réarrangement de liste de paramètres, synchronisation des signatures (changer le nom d’un paramètre dans la déclaration répercutera la modification dans le corps).

Continue reading “Qt Creator 2.5 est sorti en beta”

Thread travailleur avec Qt en utilisant les signaux et les slots

Qt fournit des classes de threads indépendantes de la plateforme, une manière thread-safe de poster des événements et des connexions entre signaux et slots entre les threads. La programmation multithreadée s’avantage des machines à plusieurs processeurs et est aussi utile pour effectuer les opérations chronophages sans geler l’interface utilisateur d’une application. Sans multithreading, tout est fait dans le thread principal.

Thread travailleur avec Qt en utilisant les signaux et les slots

Exposer des modèles C++ imbriqués à QML

Bien que ce cas d’imbrication puisse sembler rare en pratique, le fait que XML n’ait pas de support direct pour les modèles arborescents rend l’utilisation de modèles C++ imbriqués très utile pour obtenir une structure en arbre.

Un exemple de cas pratique où les modèles imbriqués sont utiles est le stockage de conversations Facebook. Un mur Facebook est constitué de notifications sociales (modèle racine), chacun pouvant avoir des commentaires (modèles internes).

Exposer des modèles C++ imbriqués à QML