Sto provando a eseguire il porting di un emulatore che ho scritto in java su Android. Le cose sono andate bene, sono stato in grado di trasferire la maggior parte dei miei codici con piccole modifiche, tuttavia a causa di come funziona l'emulazione, ho bisogno di renderizzare l'immagine a livello di pixel.accesso e manipolazione veloce dei pixel android
Per quanto riguarda Java Desktop che uso
int[] pixelsA = ((DataBufferInt) src.getRaster().getDataBuffer()).getData();
che mi permetta di ottenere il riferimento al buffer pixel e aggiornare al volo (ridurre al minimo le creazioni di oggetti)
Attualmente questo è ciò che il mio emulatore per android fa per ogni fotogramma
@Override
public void onDraw(Canvas canvas)
{
buffer = Bitmap.createBitmap(pixelsA, 256, 192, Bitmap.Config.RGB_565);
canvas.drawBitmap(buffer, 0, 0, null);
}
pixelsA è un int array [], pixelsA contiene tutte le informazioni di colore, quindi ogni frame sarà destinato a creare un oggetto bitmap facendo
buffer = Bitmap.createBitmap(pixelsA, 256, 192, Bitmap.Config.RGB_565);
che credo sia piuttosto costoso e lento.
C'è un modo per disegnare in modo efficiente i pixel con la tela?
vero, CreateBitmap è lento, è la copia di memoria, e anche la conversione di formato pixel nel tuo caso! –