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

GTK+ avec C & C++ Discussion :

Non-Fluidité de Cairo


Sujet :

GTK+ avec C & C++

Vue hybride

KiKiTiTi Non-Fluidité de Cairo 16/05/2011, 21h29
gerald3d Comment mets-tu l'écran en... 17/05/2011, 08h46
liberforce Effectivement, on ne colorie... 17/05/2011, 18h14
KiKiTiTi Cairo (Suite) 18/05/2011, 00h13
liberforce Bonjour, le multithreading... 18/05/2011, 11h18
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 108
    Par défaut Non-Fluidité de Cairo
    Bonjour,
    J'ai remis à jour une application graphique sous cairo. Son code source était écrit en X11. Elle marche très bien sous cairo. Seulement un détail me tracasse: pour animer le graphique, je dois mettre à blanc le dessin avant de dessiner un nouveau. Sous X11, cette technique marche très bien et l'animation est très fluide. Par contre, sous cairo, le passage d'un dessin au suivant provoque un clignotement de l'écran qui fait mal aux yeux.

    J'aimerais savoir si quelqu'un parmi vous connaît les instructions de cairo qui permettent d'afficher successivement des pages graphiques sans provoquer ces clignotements très gênants.

    Merci à l'avance et cordialement

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Comment mets-tu l'écran en blanc?

    Il existe un système de clipping sous Cairo. Je ne maîtrise pas encore tout ca mais la solution doit sûrement être de ce côté là.

  3. #3
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Par défaut
    Effectivement, on ne colorie pas en blanc le fond, c'est absolument misérable au niveau performances parce que cela force un appel aux drivers et au matériel. Pour améliorer les performances, il suffit de ne dessiner que ce qui change d'une image à l'autre, et pas l'intégralité de l'image. C'est à cela que sert le clipping.
    Tu as des infos sur les animations avec cairo et pyGTK, cairo, GTK et les theads.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 108
    Par défaut Cairo (Suite)
    Bonsoir,

    Grand merci pour vos renseignements. En combinant les techniques Clipping / Masking et sans passer par fond blanc, le déroulement des images est effectivement plus fluide sous cairo. Cela étant dit, le CPU de la machine est complètement bouffé par le tracé des graphiques sous cairo.
    Je vais tenter le multi-threading selon les liens que vous m'avez indiqués.

    Cordialement

  5. #5
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Par défaut
    Bonjour,

    le multithreading était juste un exemple, parce que tu ne donnes que peu d'informations sur ce que tu fais. En pratique, je déconseille le multi-thread car cela complique le débogage, à moins que la cible soit un processeur multi-coeur et que tu as une exigence très pointue en termes de performances.

    Montre nous plutôt le code de ton expose-event pour voir un peu comment tu dessines, il y a sans doute des choses qui peuvent être optimisées. Ensuite, une des règles d'or de l'optimisation: mesurer avant d'optimiser. Je te conseille donc d'utiliser gprof pour faire des mesures afin de déterminer où ton application passe du temps et ce que tu peux améliorer.

    Voilà quelques liens pour apprivoiser gprof, cela se fait rapidement.
    http://www.ibm.com/developerworks/li...w04GNUProfiler
    http://www.cs.utah.edu/dept/old/texi...gprof_toc.html
    http://www.network-theory.co.uk/docs...cintro_80.html

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 108
    Par défaut Cairo (suite)
    Bonjour,
    Mon application est trop volumineuse pour l'expliciter. Sa structure, sans multi-threading, est néanmoins assez proche de celle de l'exemple de multi-threading que vous avez indiqué. Par monitoring, je constate que le tracé des surfaces consomme beaucoup de CPU. Il est vrai que je pourrai sans doute l'optimiser encore mais je ne pense pas que cela puisse aller loin. Selon vous, le multi-threading peut-il apporter un saut significatif en performance ?

    Cordialement

Discussions similaires

  1. apprentissage non supervisé .......
    Par ratbert dans le forum Statistiques, Data Mining et Data Science
    Réponses: 7
    Dernier message: 22/02/2008, 12h23
  2. Une fonction avec des attributs non obligatoires
    Par YanK dans le forum Langage
    Réponses: 5
    Dernier message: 15/11/2002, 13h39
  3. [CR8][Delphi6] erreur imprimante non supportée
    Par Sebastien L. dans le forum SDK
    Réponses: 3
    Dernier message: 12/09/2002, 15h42
  4. Form principale non visible au demarrage!!!!
    Par toufou dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/07/2002, 21h49
  5. Réponses: 6
    Dernier message: 21/06/2002, 14h48

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