Я показываю изображение в Swing
. Я рисую поверх изображения (куча drawRect()
звонков) и обновляет экран. Изображение постоянное, но объекты, нарисованные сверху, не являются. Есть ли способ избежать перерисовки изображения в любое время? Так как графическая карта, вероятно, отображает изображение, можно ли предположить, что вызовы drawRect()
являются узким местом? Я рисую целых 20 000 вызовов кадра (но обычно не более 3000).Оптимизация отображения поворотного изображения
Редактировать: Это действительно прямые вызовы, которые замедляют его, и его можно сделать значительно быстрее, удалив канал прозрачности. При этом было бы неплохо ускорить его и включить прозрачность. Код не может быть проще, поэтому я надеюсь, что он сделает что-то другое, это поможет.
public void paintComponent(Graphics g) {
super.paintComponent(g) ;
//grid or walkers
g.drawImage(image, 0, 0, null);
for(Walker w : walkArray){
g.setColor(new Color(255,255-w.data[3], 0, w.data[2]));
g.drawRect(w.data[0], w.data[1], 1, 1);
}
}
Можете ли вы опубликовать свой метод рисования? –
Опубликуйте код, и даже лучше, опубликуйте [SSCCE] (http://sscce.org). –
Отображается ли изображение в BufferedImage? Снова без кода мы здесь. –