Я пытаюсь перенести эмулятор, который я написал на java, на android. Дела идут хорошо, я смог перенести большую часть своих кодов с небольшими изменениями, однако из-за того, как работает эмуляция, мне нужно рендерить изображение на уровне пикселей.
Что касается Java для рабочего стола, я использую
int[] pixelsA = ((DataBufferInt) src.getRaster().getDataBuffer()).getData();
, что позволяет мне получать ссылку на буфер пикселей и обновлять его на лету (минимизировать создание объектов)
В настоящее время это то, что мой эмулятор для Android делает для каждого кадра
@Override
public void onDraw(Canvas canvas)
{
buffer = Bitmap.createBitmap(pixelsA, 256, 192, Bitmap.Config.RGB_565);
canvas.drawBitmap(buffer, 0, 0, null);
}
pixelA - это массив int [], pixelA содержит всю информацию о цвете, поэтому в каждом кадре ему придется создавать объект растрового изображения, выполняя
buffer = Bitmap.createBitmap(pixelsA, 256, 192, Bitmap.Config.RGB_565);
, что я считаю довольно дорогостоящим и медленным.
Есть ли способ эффективно рисовать пиксели с помощью холста?