IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Qt Graphics et performances, une série d'articles des Qt Labs [Tutoriel]


Sujet :

Qt

  1. #1
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut Qt Graphics et performances, une série d'articles des Qt Labs
    Le 11 décembre 2009, la documentation de QPainter subissait un énorme ajout concernant l'optimisation de son utilisation. En effet, le bon usage de cet outil n'était pas accessible à tous, il n'était pas présenté dans la documentation. Ceci ne fut qu'un prétexte à une série d'articles sur l'optimisation de QPainter et de Qt Graphics en général.

    Voici donc le premier article de cette série, les autres sont en préparation :
    Qt Graphics et performances : ce qui est critique et ce qui ne l'est pas

    Pensez-vous que cet ajout à la documentation de QPainter sera utile ? Trouvez-vous les performances de vos applications trop faibles ?

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 597
    Points
    188 597
    Par défaut
    La deuxième partie de cette série est disponible :

    QtGraphics et performances - Vue d'ensemble

    Pour cette série d'articles que j'écris, le mieux est que je commence par une vue d'ensemble de ce que sont les painters, les pixmaps, les widgets, les graphicsview et le backingstore.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 597
    Points
    188 597
    Par défaut
    La troisième partie de cette série, qui s'annonce plus que prometteuse, est disponible. Elle concerne le moteur de rendu Raster, porté sur toutes les plateformes que supporte Qt, un moteur de rendu logiciel.

    Qt Graphics et performance - Le moteur de rendu Raster

    Le moteur de rendu Raster est le moteur de rendu par défaut de Qt. L'ensemble des fonctionnalités de dessin de Qt y sont implémenté, uniquement par logiciel, ce qui permet d'utiliser ce moteur sur toutes les plateformes.
    Cet article décrit le fonctionnement en détail de ce moteur pour optimiser le rendu des applications, les fonctionnalités qui peuvent être très couteuse en temps et mesure les performances de plusieurs fonctions.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  4. #4
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    Quatrième article de la série sur les performances de Qt Graphics :

    Qt Graphics et performances - Le moteur de rendu OpenVG

    L'article précédant présentait le moteur de rendu Raster, utilisé par défaut dans Qt et réalisant l'intégralité des rendus de manière logicielle. Cet article présente l'utilisation du moteur de rendu basé sur OpenVG. L'API OpenVG est une interface proposée par le groupe Khronos pour réaliser les rendus 2D de manière portable en utilisant l'accélération matériel, c'est-à-dire les cartes graphiques.

    La semaine prochaine : le moteur de rendu utilisant OpenGL.

    Bonne lecture.

  5. #5
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    OpenGL est une API qui permet de bénéficier l'accélération matérielle (puce graphique) pour réaliser les rendus 2D et 3D. Le moteur de rendu OpenGL utilise cette API pour améliorer les performances des rendus dans Qt tout en offrant les mêmes fonctionnalités que le moteur Raster.

    Qt Graphics et performance - Le moteur de rendu OpenGL

    Cet article décrit en détail le fonctionnement de ce moteur de rendu, quelles sont les fonctionnalités qui sont coûteuses et comment optimiser son utilisation.

  6. #6
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    Après avoir fait le tour des principaux moteurs de rendu utilisé dans Qt, il est temps d'aborder plus en détail certaines fonctionnalités offertes par Qt.

    Lorsque l'on utilise un framework aussi riche que Qt, il est souvent possible d'implémenter ce que l'on souhaite de plusieurs façons possibles. Cet article aborde cette problématique à travers l'exemple simple (mais pas si simple finalement) de l'implémentation d'un clavier virtuel. L'auteur compare les performances de différentes implémentations (avec QGraphicsProxyWidget, avec QGraphicsItem et avec QGraphicsWidget). Il explique en particulier les détails d'implémentation de ces classes qui expliquent les différences de performances.

    Qt Graphics et performance - Le coût des commodités

    En conclusion, on peut voir que les différentes fonctionnalités offertes par Qt permettent de gagner du temps dans le développement et ne présente pas de problème de performances en général. Cependant, dans certain cas, en particulier sur un mobile, la faible puissance des appareils nécessitent quelques ajustements.

  7. #7
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    Dans l'article précédant, les benchmarks montraient clairement que le rendu du texte est une opération qui peut être lourde de conséquence en terme de performance.

    Pour améliorer les performances, une méthode est de mettre en cache la mise en forme du texte, en utilisant la classe QTextLayout :

    Qt Graphics et performance - Du texte rapide

    Un prochain article sera consacré à la classe QStaticText (introduite dans Qt 4.7) permettant d'améliorer encore les performances.

  8. #8
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    Lorsque l'on conçoit une interface utilisateur, on peut être amené à devoir afficher des éléments qui sont relativement long à afficher, que se soit parce que le temps de rendu est long (rendu 3D par exemple) ou parce qu'il est nécessaire de télécharger les données (affichage d'un site internet par exemple). Pour une expérience utilisateur optimale, il est nécessaire que l'interface ne soit pas figé pendant ce temps. Une approche est de déplacer les fonctions de rendu dans un thread séparé.

    Dans Qt Graphics et performance - Génération de contenu dans des threads, l'auteur aborde cette approche à travers l'exemple simple d'une galerie d'image en ligne. L'utilisation des classes Qt de manipulations des threads facilite le développement de ce type d'approche.

    Bonne lecture.

  9. #9
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 597
    Points
    188 597
    Par défaut
    On attribue à Albert Einstein la phrase : « la folie est de faire la même chose encore et encore en espérant un résultat différent ». Apparemment, la citation est mauvaise et il faut en fait l'attribuer à Rita Mae Brown mais ce n'est pas important pour le moment. Ce qui est important est que la plupart des applications Qt sont folles.

    La folie est de mettre en forme le même texte encore et espérer un résultat différent
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  10. #10
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 597
    Points
    188 597
    Par défaut
    Les animations devraient plus ressembler à du velours : une douce homogénéité plaisante. Du point de vue technique, cela requiert quelques petites choses, lesquelles sont décrites dans le dernier article paru dans cette série :

    Qt Graphics et performance - velours et QML Scene Graph
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

Discussions similaires

  1. Réponses: 7
    Dernier message: 03/12/2004, 10h15
  2. Compression d'une série d'images jpeg
    Par Tchello dans le forum Langage
    Réponses: 3
    Dernier message: 31/08/2003, 19h59
  3. Créer une série dans un chart
    Par cyrose dans le forum C++Builder
    Réponses: 5
    Dernier message: 28/11/2002, 11h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo