Проблема Я пытаюсь сделать более эффективную систему рендеринга с нуля, и я пришел к выводу, что использование для циклов очень неэффективно для больших окон.Как использовать BitSet и BufferedImage для быстрого набора пикселей?
Вопрос Так что мой вопрос, могу ли я использовать BitSet манипулировать пикселы гораздо быстрее, чем при использовании для цикла, чтобы установить каждый пиксель в отдельности?
Вещи, которые могут понадобиться Система рендеринга очень маленькая, так как это скорее тест, чем что-либо. Единственное, что он сейчас делает, это рисовать прямоугольники на экране, чтобы я мог проверить FPS, который я получаю.
public void drawRect(int offX, int offY, int width, int height, int color)
{
for (int y = 0; y < height; y++)
for (int x = 0; x < width; x++)
pixels[x + offX + this.width * (y + offY)] = color;
}
массив пикселей только данные из BufferedImage с помощью pixels = ((DataBufferInt) engine.getWindow().getImage().getRaster().getDataBuffer()).getData();
Я не уверен, как бы я идти об использовании класса BITSET с пикселями, но я надеюсь, что это быстрее, чем drawRect способ. Счетчик FPS говорит мне, что рисование одного прямоугольника на экране 1980x1080 составляет примерно 100-130 кадров в секунду без постоянной очистки.
любая помощь, пожалуйста, скажите мне, если так, как я имею в виду, это просто глупо
Почему вы думаете, что использование «BitSet» - хорошая идея? – haraldK