私はJavaで書かれたエミュレータをアンドロイドに移植しようとしています。物事は順調に進んでいますが、ほとんどのコードをマイナーチェンジして移植することはできましたが、エミュレーションの仕方によってピクセルレベルでイメージをレンダリングする必要があります。アンドロイド高速ピクセルアクセスと操作
私が使用するデスクトップJava用として、私は
は現在、これがためにどのような私のエミュレータです(オブジェクトの創作を最小限に抑える)ピクセルバッファへの参照を取得し、その場でそれを更新することができ
int[] pixelsA = ((DataBufferInt) src.getRaster().getDataBuffer()).getData();
アンドロイドは、すべてのフレーム
@Override
public void onDraw(Canvas canvas)
{
buffer = Bitmap.createBitmap(pixelsA, 256, 192, Bitmap.Config.RGB_565);
canvas.drawBitmap(buffer, 0, 0, null);
}
ためpixelsAは、配列intでない[]、pixelsAは、すべての色の情報が含まれているので、すべてのフレームには、ビットマップオブジェクトを作成する必要があります私はかなり高価で遅いと信じて
buffer = Bitmap.createBitmap(pixelsA, 256, 192, Bitmap.Config.RGB_565);
私は非常に高価であると信じています。
キャンバスで効率的にピクセルを描画する方法はありますか?
真、createBitmapは、遅いですあなたのケースでは、メモリのコピー、さらにはピクセル形式の変換です! –