Bonjour,
J'ai une applet java qui affiche une carte numérisée et sur laquelle je peux effectuer de simples actions de sélection de foyers. Cette applet n'a pour le moment pas posé de problème chez aucun client jusqu'à il y a quelques temps. J'ai eu depuis plusieurs retours de client (j'ai eu le problème chez moi également) qui se plaignaient d'une lenteur d'affichage. En effet le remplissage d'un cercle peut prendre 15 secondes (on voit le cercle se remplir ligne par ligne).
J'ai trouvé la cause de mon problème et le simple fait de désactiver l'accélération matérielle de ma carte graphique permet de résoudre le problème. En fait j'ai juste besoin de désactiver "les accélérations DirectDraw et Direct3D, et celles des curseurs et des tracés avancés. Utilisez ce réglages pour régler les problèmes liées aux applications accélérées par DirectX"
Pour info j'ai la jre 1.6.0_12 et j'utilise la lib awt pour l'affichage, voici pour exemple une des méthodes d'affichage utilisées (le cercle qui met 15 secondes à se remplir) :
Quelqun a une idée de la cause exacte de ce problème et que puis-je faire pour ne pas avoir à imposer aux client de désactiver leur accélération matérielle ?
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 public void drawObject(Graphics g) { if(radius >= 0) { g.setXORMode(color_xor); int x = (int) host.mapToScreenX(xc) - radius ; int y = (int) host.mapToScreenY(yc) - radius ; g.setColor(color_poly); g.fillOval(x, y, 2*radius, 2*radius) ; g.setColor(color_line); g.drawOval(x, y, 2*radius, 2*radius) ; } }
Merci pour votre aide ...
Partager