je m'explique :
pour le moment je trace dans un tableau de int[]. bon. Pour l'affichagem je recopie ce tableau dans un Image, puis je balance a l'ecran via un Graphics.drawImage(..)
le truc, c que la recopie dans Image prends environ 350ms, soit bpc trop. Me suis donc dit, petit malin, plutot que de recopier dans un Image je me fais ma propre classe Image et j'envoie celle ci au graphics.
Vala donc le resultat :
Code :
- class TestImage extends java.awt.Image
- {
- public int getWidth(ImageObserver observer)
- {
- System.out.println("GetWidth" );
- if (observer!=null)
- System.out.println("Observer present" );
- return 10;
- }
-
- public int getHeight(ImageObserver observer)
- {
- System.out.println("GetHeight" );
- if (observer!=null)
- System.out.println("Observer present" );
-
- return 10;
- }
-
- public ImageProducer getSource()
- {
- System.out.println("GetSource" );
- getHeight(null);
- return null;
- }
-
- public Graphics getGraphics()
- {
- System.out.println("GetGraphics" );
- return null;
- }
-
- public Object getProperty(String name, ImageObserver observer)
- {
- System.out.println("GetProperty" );
- return null;
- }
-
-
- public Image getScaledInstance(int width,int height,int hints)
- {
- System.out.println("GetScaledInstance" );
- return null;
- }
-
- public void flush()
- {
- System.out.println("Flush" );
- }
-
- public String toString()
- {
- System.out.println("toString" );
- return "toto";
- }
-
- public boolean equals(Object obj)
- {
- System.out.println("equals" );
- return super.equals(obj);
- }
- }
|
(le but etant pour le moment de voir quelles sont les fonctions que Graphics appelent lors du drawImage(...)
A l'exec, je vois que seules les fonctions getHeight/getWidth sont appelees, et apres drawImage retourne en renvoyant false. Ca me fait les pieds. La javadoc me dit a ce propos :
Citation :
If the image has not yet been completely loaded, then drawImage returns false. As more of the image becomes available, the process that draws the image notifies the specified image observer.
|
ce qui me fait aussi les pieds. Bref, qu'est ce qu'il se passe ? qu'est ce qu'ils veulent dire par "completely loaded" ? Pkoi ma fausse image n'est pas consideree comme "completely loaded" ?