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 :

[Canvas] Optimisation


Sujet :

2D Java

  1. #1
    Membre confirm�
    Inscrit en
    Mars 2002
    Messages
    88
    D�tails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 88
    Par d�faut [Canvas] Optimisation
    Salut !

    Je vais �tre direct : j'ai r�alis� un �diteur pemettant de dessiner des objets modiflables (lignes, etc.) dans un Canvas. Ce Canvas peut cependant �tre tr�s grand (10000*10000 pixels) et l� ca devient super lourd lorsque je fait mon repaint() apr�s une modification d'un objet.

    Est-ce que quelqu'un a une id�e pour optimiser le rendu ? Je pensais ne dessiner que la partier qui est visible dans mon ScrollPane, mais je ne sais pas trop comment m'y prendre.

    Merci d'avance pour vos r�ponses.

  2. #2
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Par d�faut
    Tu peux utiliser les fonctions de clip d�finies dans AWT :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    public void update(Graphics g) {
    	g.setClip(x, y, width, height);
            super.update(g);
    }
    tu laisse ta fonction paint() comme elle est, et tu modifie juste ca.

    Il faut bien evidemment calculer toi meme les x,y,width, height qui correspondent a la zone a redessiner, tout le reste sera ignor� ;o)

  3. #3
    Membre confirm�
    Inscrit en
    Mars 2002
    Messages
    88
    D�tails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 88
    Par d�faut
    Salut,

    Tout d'abord merci pour ta r�ponse, et d�sol� pour le retard ;)

    En fait, j'utilise une Image pour faire un back buffer... et dans mon paint, j'appelle un g.drawImage(buffer, ...).
    J'ai bien fait un g.clip('taille bcp plus petite que l'image") auparavant, mais ca n'a pas l'air d'am�liorer les performances.

    Je vais encore faire quelques tests, apr�s je vous montrerai mon code si ca ne marche toujours pas.

  4. #4
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Par d�faut
    ou�, la feinte c'est de laisser ton paint() comme il est actuellement et de mettre le setClip() dans le update.

    En fait, un appel a update pr�cede toujours un appel a paint(). update() se charge notemment d'effacer (si je me souvient bien) le fond et de faire 2/3 operations sur le graphics. Si on defini un clip, on evite de recharger tout, car une fois que le update a tout effac�, le paint est oblig� de s'executer en entier, quelque soit le clip, sinon c'est pas beau ;o)

  5. #5
    Membre confirm�
    Inscrit en
    Mars 2002
    Messages
    88
    D�tails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 88
    Par d�faut
    C'est bon, j'ai trouv� d'o� vient le probl�me ... j'ai simplement rajout� un setClip(...) sur mon back_buffer juste avant de dessiner devant.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Optimisation d'une animation dans canvas de html5
    Par Archim�de dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 05/03/2015, 11h20
  2. Optimisation d'un canvas ?
    Par Anthares dans le forum Windows Presentation Foundation
    R�ponses: 7
    Dernier message: 11/03/2010, 11h12
  3. Timage et Canvas??
    Par vanack dans le forum C++Builder
    R�ponses: 4
    Dernier message: 14/04/2007, 11h38
  4. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    R�ponses: 2
    Dernier message: 11/06/2002, 10h24
  5. R�ponses: 2
    Dernier message: 17/05/2002, 20h37

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