2010-04-21 13 views
5

Sto facendo un gioco in java e in BufferedImages utilizzato per visualizzare il contenuto sullo schermo. Ho avuto problemi di prestazioni su macchine di fascia bassa in cui il gioco dovrebbe funzionare, quindi sono passato a VolatileImage che sono normalmente più veloci. Tranne che in realtà rallentano tutto.Java: VolatileImage più lento di BufferedImage

Le immagini vengono create con GraphicsConfiguration.createCompatibleVolatileImage (...) e vengono disegnate sullo schermo con Graphics.drawImage(...) (seguire il collegamento per vedere quale di esse in particolare). Sono disegnati su una tela usando doppio buffering.

Qualcuno ha un'idea di cosa sta andando storto qui?

+0

Ho notato lo stesso. – Hardcoded

+0

Se hai poca memoria sulla scheda grafica, ovviamente non ti aiuterà. IIRC, 'BufferedImage' ha avuto alcuni aumenti di velocità, quindi la differenza potrebbe non essere grande come una volta. –

+0

@Norswap: Penso davvero che per trovare una buona risposta a questo consiste nel trovare giochi Java Open Source di alto livello (ce ne sono alcuni) o qualche grande demo Java (dalla "scena demo") e cercare di capire cosa hanno fatto. Ho usato per programmare giochi e demo molto tempo fa su hardware molto * esotico (come Amiga, SNES, modalità 13x ecc.) E ancora non so come "spingere i pixel" correttamente in Java. Questo è ancora una volta un dominio in cui Java è stato "sovrastampato" ed è inutilmente complicato. Non tengo il fiato sospeso per qualcuno qui su SO per essere davvero in grado di aiutarti. – SyntaxT3rr0r

risposta

6

Molto probabilmente il tuo codice sta mescolando operazioni accelerate e non accelerate.

Questo document è un must. La sezione 3.2 in particolare è essenziale per chiunque lavori con grafica Java accelerata.

+0

È possibile che il ridimensionamento (nel senso del ritaglio, vedi il collegamento nella domanda) un'immagine sia un'operazione così non accelerata? Dal momento che utilizzo i fogli sprite, ogni estrazione deve selezionare in modo efficace una parte dell'immagine da disegnare sullo schermo. – Norswap

Problemi correlati