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

2D Java Discussion :

Lag dans une animation


Sujet :

2D Java

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 107
    Par défaut Lag dans une animation
    Bonjour à tous, je cherche à faire une animation, un simple texte défilant.

    Voici le code de narkotik :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    import java.awt.*;
    import java.awt.image.*;
     
    public class DoubleBufferingHardware extends Frame{
       // boucle d'affichage
       RenderingThread renderingThread = new RenderingThread(); 
       // variable permettant d'utiliser la mémoire VRAM
       BufferStrategy strategy; 
       // buffer mémoire où les images et les textes sont appliqués
       Graphics buffer; 
       int x = 0; // coordonnée x de l'affichage du texte
     
       public DoubleBufferingHardware(){
          setSize( 400, 400 );
          setVisible( true );
     
          // inhibe la méthode courante d'affichage du composant 
          setIgnoreRepaint( true );  
     
          // on créé 2 buffers dans la VRAM donc c'est du double-buffering
          createBufferStrategy( 2 ); 
     
          // récupère les buffers graphiques dans la mémoire VRAM
          strategy = getBufferStrategy(); 
          buffer = strategy.getDrawGraphics();
          renderingThread.start();  
       }
     
       public void graphicalRender(){
          buffer.setColor( Color.black ); 
          buffer.fillRect( 0, 0, 400, 400 ); 
          buffer.setColor( Color.white ); 
          buffer.drawString( "affichage d'une ligne de texte", x, 200 );
          x++; 
          if ( x > 400 ) x = 0; 
          //on envoie toutes les données du buffer mémoire vers le buffer d'affichage (équivalent d'un flush en C/C++)
          strategy.show(); 
       }
     
       class RenderingThread extends Thread{
       	  /**
               *  Ce thread appelle le rafraichissement de notre fenêtre 
               *  toutes les 10 milli-secondes
               */
          public void run(){
             while( true ){
                try {
                    // on appelle notre propre méthode de rafraichissement
                   graphicalRender();
                   sleep( 5 );
                } catch ( Exception e ) {} 
             }
          }
       }   
       public static void main(String[] args){new DoubleBufferingHardware();}
    }
    Sous windows il fonctionne tres bien, aucun probleme de lag aucune frame de perdu ou non dessiné.

    Mais sous linux, il ne dessine pas tout. J'ai des saccade dans mon animation. c'est pas du tout fluide. Mais si je viens à bouger ma souris dans mon application, alors le texte se déplace sans saccade et de maniere fluide tant que je bouge ma souris.

    Est ce que quelqu'un aurait dejà eu ce petit soucis ?

    Je suis sous ubuntu 10.10
    et j'utilise l'open JDK 6
    et netbeans 6.8

    Merci d'avance.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 107
    Par défaut
    Petite piste à la résolution du problème.

    Je pense que ce lag viens du fait que j'ai la version de java installer par défaut sur ma machine linux : openJDK 6. Alors qu'avec sun java-jdk6 ca viendrait à régler le soucis.

    Mais maitenant pourquoi ?

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    Peut-etre que l'Open-JDK est une version ancienne qui n'inclus aucune acceleration 2D... puisque ces dernieres ont ete integrees petit a petit dans les divers sous-versions de Java 6.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 107
    Par défaut
    Voila ma version actuelle de mon openJDK :

    java version "1.6.0_20"
    OpenJDK Runtime Environment (IcedTea6 1.9.5) (6b20-1.9.5-0ubuntu1~10.04.1)
    OpenJDK 64-Bit Server VM (build 19.0-b09, mixed mode)

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    Ben dans ce cas c'est probablement alors qu'ils n'integrent pas les accelerations que Sun/Oracle teste dans la release officielle. A voir s'ils les integreront dans Java 7 quand meme puisque ce dernier sera sense disposer des accelerations materielles directes (les differentes sous-versions de Java 6 servent de test-bed pour Java 7). Il est probable egalement que ces pipeline reposent sur du code ou des libs proprietaires.

    En meme temps, le JRE de Sun/Oracle etant gratuit, en plus d'etre l'implementation de base, j'vois pas pourquoi aller s'embeter avec un Open-machin qui visiblement ne fonctionne pas si bien.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 107
    Par défaut
    Bah le truc c'est qu'il est installé par défaut dans la distrib ubuntu. Alors forcemment sur le coup tu ne te dit pas qu'il y a des soucis

    Mais merci pour tes réponses. Elles me sont, mine de rien, très importantes

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FLASH 8] Intégration Php dans une anim Flash
    Par MrPink dans le forum Flash
    Réponses: 1
    Dernier message: 01/02/2006, 22h26
  2. [FLASH MX] Plusieurs écrans dans une anim
    Par flashpowwa dans le forum Flash
    Réponses: 11
    Dernier message: 24/09/2005, 21h01
  3. Réponses: 2
    Dernier message: 31/08/2005, 18h32
  4. Réponses: 1
    Dernier message: 29/08/2005, 14h04
  5. lien hypertexte dans une anim flash
    Par vedder dans le forum Flash
    Réponses: 17
    Dernier message: 14/01/2004, 14h11

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