При разработке 2D-игр в Java большинство учебников создают буферную стратегию для рендеринга. Это имеет смысл. Однако, когда люди, похоже, перекошены, это метод рисования фактической графики в буфер.
Некоторые учебные пособия создают буферизованное изображение, а затем создают целочисленный массив для представления отдельных цветов пикселей.
private BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
private int[] pixels = ((DataBufferInt) image.getRaster().getDataBuffer()).getData();
Graphics g = bs.getDrawGraphics();
g.setColor(new Color(0x556B2F));
g.fillRect(0, 0, getWidth(), getHeight());
g.drawImage(image, 0, 0, getWidth(), getHeight(), null);
Однако некоторые другие учебники не создают буферизованное изображение, рисуют пиксели в массив int и вместо этого используют компонент Graphics из BufferStrategy для рисования их изображений непосредственно в буфер.
Graphics g = bs.getDrawGraphics();
g.setColor(new Color(0x556B2F));
g.fillRect(0, 0, getWidth(), getHeight());
g.drawImage(testImage.image, x*128, y*128, 128, 128, null);
Мне просто интересно, зачем создавать весь массив int, а затем рисовать его. Для этого требуется гораздо больше работы по реализации прямоугольников, растягиванию, прозрачности и т.д. Графический компонент стратегии буфера уже имеет методы, которые можно легко вызвать. Есть ли огромное увеличение производительности использования массива int?
Я искал это часами, и все сайты, которые я видел, просто объясняют, что они делают, а не почему они решили сделать это таким образом.