Почему Graphics2D drawImage занимает так много времени? - PullRequest
0 голосов
/ 01 мая 2018

Я создаю игру, которая использует библиотеку Java Graphics2D. Следующий вызов в упрощенной версии моего кода занимает около 20 мсек:

off2.drawImage(tileImage, 0, 0, null);

, где tileImage - изображение размером 5040 * 2280, а off2 объявляется с помощью следующего кода:

GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice device = env.getDefaultScreenDevice();
GraphicsConfiguration config = device.getDefaultConfiguration();
offscreen = config.createCompatibleImage(SCREEN WIDTH, SCREEN HEIGHT, Transparency.TRANSLUCENT);
offg = offscreen.getGraphics();
off2 = (Graphics2D)offg;

Я также использую off2.scale для масштабирования своих изображений.

У меня есть метод paintComponent в классе, который наследует JPanel, который рисует offscreen:

@Override
public void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawImage(offscreen, 0, 0, this);                 
}

Мне было интересно, стоит ли ожидать такого количества времени для одного звонка. Видя, что это экшн-игра, я бы предпочел использовать самые быстрые из возможных методов, чтобы максимизировать плавность.

...