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

Graphisme Java Discussion :

Animation dégradée avec Java 1.6.11


Sujet :

Graphisme Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 19
    Par défaut Animation dégradée avec Java 1.6.11
    Bonjour à tous ,


    Je développe depuis plusieurs mois un programme de jonglage capable d'animer des figures en fonction de multiples paramètres dans une frame voisine du panneau de contrôle. Cela fait depuis longtemps que l'animation est éprouvée et fonctionne .

    Hors, hier, j'ai mis à jour mon JDK en le passant de la 1.6.7 à la 1.6.11, et depuis j'ai de graves problèmes d'animation : frame absente (ou cachée ?), frame vide, frame avec juste la couleur de fond, animation par dessus le panneau de contrôle... Je ne parviens pas à reproduire facilement ces problèmes, même avec des environnements identiques (mode appli ou applet, navigateur, version de Java utilisée pour la compilation, ...) !!!

    J'ai pu lire qu'à partir de la 1.6.10, l'accélération 2D est prise en charge automatiquement par Java, mais je n'ai pas réussi à dégoter suffisamment de renseignements à ce sujet (peut-être que le problème est ailleurs, même...)

    Pour tracer mon animation, j'utilise les méthodes standards de Graphics2D, comme drawLine, drawOval, fillPolygon, et un double-buffering hardware (createBufferStrategy(2), bufferStrategy.show(), etc...).

    Alors j'aurais bien du mal à poster le code, parce qu'il est est pas mal disséminé dans des méthodes, et qu'il est gros aussi, et surtout il marchait nickel avec la version 1.6.7 précédente.
    Ce que j'aimerais apprendre, c'est s'il existe une source potentielle de conflit avec la 1.6.11, s'il faudrait que je désactive mon buffering, que je repasse à une version antérieure de Java, ...


  2. #2
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Par défaut
    Salut,

    Ce n'est pas seulement une suggestion, mais une méthode de travail que j'utilise depuis des années.

    Un projet ou une grosse application bien écrite doit absolument contenir des classes de tests (JUnit ou pas). Tu devrais être capable d'animer un seul ou 0 sprite depuis une classe de test. Ensuite il faudrait pouvoir activer ou désactiver certaines des options (style double-buffering) pour voir d'où ton problème vient.

    Tu as certainement un paint/repaint à la mauvaise place. J'ai eu ce genre de problème et résolu en dessinant sur un Canvas au lieu d'un Panel (ou l'inverse ... je ne sais plus). Essaies des repaint() d'abord, même si tu penses qu'ils ne servent à rien!

    Cordialement

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 19
    Par défaut
    boijea pour ta réponse !

    Je ne suis en effet pas capable aujourd'hui de tester "unitairement" mon application, en me focalisant par exemple sur l'animation uniquement, parce qu'il y a bien trop de paramètres gérant celle-ci pour tenter d'isoler un problème...

    Reste que depuis, j'ai désinstallé la 1.6.11 pour repasser à la 1.6.7, et que là, tout fonctionne nickel comme avant !

    Une chose que je n'avais pas non plus remarqué, c'est la consommation CPU qui avait grimpé en flèche avec la 1.6.11, et qui a bien rechuté avec ce downgrading.

    Alors une chose est sûre : le code est strictement identique, et j'ai tout recompilé entièrement. Pourtant l'animation ne fonctionne pas de la même manière... Je me dis que ce doit être forcément un problème de mémoire (% CPU excessif, animation toute faussée), et plus particulièrement un problème de buffer des images.

    Je vais donc mettre en place un booléen permettant d'activer ou pas le double-buffering, et je vais attendre la version 1.7 de Java pour résoudre définitivement le problème, en compilant avec cette version, en faisant que ça marche, et, de fait, en n'autorisant que des JRE 1.7.

    En tout cas, je ne comprends pas pourquoi mon appli rame quand même avec l'upgrade 11 alors qu'elle a été compilée avec l'upgrade 7 (et marche nickel sous celle-ci) : Sun aurait voulu anticiper sur les fonctionnalités de la version 7, mais la compatibilité ascendante n'est pas complètement assurée, cette fois...

Discussions similaires

  1. Pb animation avec java
    Par kouda2011 dans le forum 2D
    Réponses: 1
    Dernier message: 11/04/2011, 10h51
  2. Réponses: 3
    Dernier message: 15/07/2010, 19h07
  3. Réponses: 0
    Dernier message: 16/06/2010, 11h14
  4. texte animé avec java
    Par edson15 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 06/06/2007, 22h40
  5. [JNDI] Equivalent avec Java Web Start ?
    Par cameleon2002 dans le forum Java EE
    Réponses: 8
    Dernier message: 18/09/2003, 18h55

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