Newsgroup: it.comp.java
Titolo: Accelerare al massimo il ridisegno.

Sapete dirmi se c'č una maniera per accelerare al massimo il ridisegno di
una finestra durante le animazioni?
Ho realizzato un effetto fuoco in Real - Time, ma anche con Graphics2D a
tutto schermo il ridisegno non supera i 7/8 frame al secondo.
So che la SUN sta sviluppando o ha sviluppato delle APi per il ridisegno HW
delle immagini in Off-Screen, c'č qualcuno che ne sa qualcosa di piů?


non so
ciao
-- 
Seti@Home Java Applets
http://maruko.cjb.net/

> hai gia' spippolato con setRenderingHints?
Saresti cosě gentile da farmi qualche esempio su come utilizzarlo?
Non riesco a capire dove e come vanno settati. :'(



io l'ho usato solo per l'antialias. questo e' lo stesso esempio che ti
ho mostrato in un post precedente ;-)
Graphics2D g2 = (Graphics2D)g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
da qui in poi le operazioni di disegno saranno effettuate con
l'antialias
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_OFF);
da qui in poi senza.
poi ci sono altri parametri che puoi controllare tramite questa
funzione: dithering, qualita' dell'antialias e del dithering...


 wrote in message
jecc8u4l95ius8d8t...@4ax.com...


                                        Grazie!
google:
http://lac.usr.dsi.unimi.it/~galli/normale/Fotoritocco/corso.htm#AntiAlias


 ha scritto nel messaggio
news:8jub8ugcgrn4vi38c...@4ax.com...


delle immagini in Off-Screen, c'č qualcuno che ne sa qualcosa di piů?
Dovrebbe essere tutto nel 1.4, ma non ho ancora approfondito. Sorry.
-- 
Ciao
	Fabrizio C.

Questo è il codice che uso per ridisegnare il tutto, ma alle massime
risoluzioni il ridisegno no mi entusiasma affatto.
Qualche ho provato ad eliminare tutte le chaiamate ai metodi (moveFire,
etc.) per vedere quanto cambiava la cosa.
Guadagno giusto un paio di frame al secondo.
Qualunque suggerimento è ben accetto.
Se poi questo è il limite......... ciccia, eviterò di fare animazioni a
tutto schermo.
public void paint(Graphics g){
    if(!init) return;
    long frameRate = System.currentTimeMillis();
    moveFire(); // metodo che calcola l'animazione del fuoco
    Graphics2D g2d = (Graphics2D)g;
    g2d.setRenderingHint(RenderingHints.KEY_RENDERING ,
RenderingHints.VALUE_RENDER_SPEED);
    g2d.drawImage(bufImg, 1, 1, null);
    frameRate = 1000/(System.currentTimeMillis()-frameRate);
    g2d.setColor(Color.white);
    g2d.drawString(""+frameRate,20,20);
}


mi spiace, ma dell'1.4 non so nulla... inoltre per me e' ancora un po'
acerbo da utilizzare... non voglio perdere tempo a risolvere problemi
che ritengo siano nel mio codice e invece sono bug della jvm... l'1.3
e' piu' stabile.


Ho detto una cavolata, il problema di lentezza dipende dal calcolo.
Togliendo il metodo MoveFire a tutto schermo sembra raggiungere i 20/25 fps.

 wrote in 
news:a6785b$6biq$
1...@stargate1.inet.it
:

Ciao, io personalmete metterei tutto cio che riguarda il calcolo 
del'animazione in un thread a parte e all'inteno e al paint lascerei solo 
il compito di disagnare lo schermo (ho capito che guadagni solo 2 frame ma 
cosi mi sembra piu "pulito")(un thread per l'applet e uno per il 
calcolo...).
Poi vorrei sapere secondo voi quanto e' attendibile misurare i frame in 
quella maniere...?!?(non che ne conosca altre...)
inoltre se vuoi l'unico modo che mi viene in mente per migiorare la 
velocita grafica di aggiornamento e' quello di far uso del repaint(int , 
int) quello che aggiorna solo le aree effettivamente cambiate es nel tuo 
caso da quello che mi pare di aver capito stai implementatdo l'effetto 
fuoco immagino pero che la tua fiamma non tenga tutto lo schermo, 
probabilmente l'hai fatto ma magari no, quindi ridisegna solo la porzione 
di schermo utile 
spero di non averti detto delle banalita 
    	    	ciao ciao 
      	    	    	bEPpE