Hallo,
ich hab eine Klasse, die von JPanel erbt. Darauf werden viele dinge gezeichnet, unter anderem auch der hintergrund. dieser soll animiert sein (will heißen, es ziehen linien darüber oder es dreht sich etwas etc).
ich habe da bis jetzt drei ansätze, die zwar alle funktionieren, aber iwie nicht so praktikabel erscheinen was speicher und effizienz anbelangt:
1. Ich erzeuge und lade ein riesengroßes bild. von diesem nehme ich bei jeder Aktualisierung des Hintergrunds ein subimage und zeichne dieses per g.drawImage();
2. es wird ebenfalls ein riesiges bild geladen. nun aber passiert nix mit subimage, sondern ich male es einfach an negative koordinaten, damit immer der richtige bildausschnitt zu sehen ist.
3. ich lade ein Array aus BufferedImages. bei jeder hintergrundänderung wird der index erhöht und dann einfach gezeichnet.
meine sorge ist nun, dass bei mehreren hintergründen im speicher irgendwann die kapazität erreicht ist und die jvm abschaltet oder noch schlimmer, swapping aktiviert wird so was.
hat jemand erfahrung, was hier am effizientesten ist? gibt es noch mehr ansätze?
javampir
ich hab eine Klasse, die von JPanel erbt. Darauf werden viele dinge gezeichnet, unter anderem auch der hintergrund. dieser soll animiert sein (will heißen, es ziehen linien darüber oder es dreht sich etwas etc).
ich habe da bis jetzt drei ansätze, die zwar alle funktionieren, aber iwie nicht so praktikabel erscheinen was speicher und effizienz anbelangt:
1. Ich erzeuge und lade ein riesengroßes bild. von diesem nehme ich bei jeder Aktualisierung des Hintergrunds ein subimage und zeichne dieses per g.drawImage();
2. es wird ebenfalls ein riesiges bild geladen. nun aber passiert nix mit subimage, sondern ich male es einfach an negative koordinaten, damit immer der richtige bildausschnitt zu sehen ist.
3. ich lade ein Array aus BufferedImages. bei jeder hintergrundänderung wird der index erhöht und dann einfach gezeichnet.
meine sorge ist nun, dass bei mehreren hintergründen im speicher irgendwann die kapazität erreicht ist und die jvm abschaltet oder noch schlimmer, swapping aktiviert wird so was.
hat jemand erfahrung, was hier am effizientesten ist? gibt es noch mehr ansätze?
javampir