Bonjour j'aimerais avoir votre avis :
Je crée une renderedImage qui fait 400*2000 pixels.
Elle se situe dans un scrollPane, et le scroll se fait normalement. La zone affichée de l'image doit correspondre à peu près à 400*600 pixels. (si vous suivez bien, il y a une barre de scroll verticale à cause des 2000 pixels, mais pas de barre horizontale à cause des 400 pixels qui rentrent dans l'écran)
Ensuite je fais un zoom, genre x5, on a donc une image de 2000*10 000 pixels.
Et là ca merde. La zone affichée doit représenter 1600*600 pixels environ, à ça scrolle lentement.
Le PC que j'utilise n'est pas une foudre de guerre.
A mon avis, ça ne vient pas du fait que l'image est énorme (une raison pour cela : quand je redimensionne ma fenêtre pour que la zone affichée à l'écran prenne moins de pixels, ça va beaucoup mieux)
Donc je pense que ça vaut le coup d'essayer le double buffering hardware, non ?
J'ai lu les tutos de Sun et une FAQ sur le net qui explique dans un exemple simple comment implementer cela, mais ca me parait super compliqué, surtout quand ton prog est déjà fini.
En gros je veux juste que quand Java doit dessiner l'image (à la rigueur tout mon scrollPane) il utilise un double buffer hardware pour que ca ne ralentisse pas.
Je veux pas l'implémenter sur tout mon prog, ca sert à rien.
Il y a surtout un truc qui m'échappe :
Dans les exemples que j'ai vu, il y a souvent ça :
Code :
- mainFrame.createBufferStrategy(numBuffers);
- BufferStrategy bufferStrategy = mainFrame.getBufferStrategy();
- for (int i = 0; i < numBuffers; i++) {
- Graphics g = bufferStrategy.getDrawGraphics();
- if (!bufferStrategy.contentsLost()) {
- // do what you want with g (draw, setColor, etc etc)
- bufferStrategy.show();
- g.dispose();
- }
- }
|
Je n'utilise pas d'objet Graphics moi.
J'utilise setSample sur une tiledImage, que je transforme en renderedImage.
Du coup je suis un peu paumé, si quelqu'un qui connait le schmilblick peut m'aider, ca serait génial.
d'avance merci !