Java2DのFillRectですら大幅な高速化

元々アクセラレーションが効いていたはずのFillRectだが、update10にするだけで大幅に高速化するようだ。

            Graphics2D g = (Graphics2D) bufferStrategy.getDrawGraphics();

            g.translate(8, 32);

            g.setColor(Color.BLACK);
            g.fillRect(0, 0,640,  480);

            g.setColor(Color.RED);
            for(int y=0;y<16;y++){
                for(int x=0;x<16;x++){
                    g.fillRect(x*24, y*24, 16, 16);
                }
            }

            g.dispose();
            bufferStrategy.show();

これを1000回繰り返した場合

  • update6:1500ms
  • update10:300ms

なんじゃこりゃあ。速すぎる!アルファブレンディングとか使わないのならJava2Dでもかなりよくなってるとか。Swingのアプリがupdate10で大幅に快適になったのはこういうのも関係ありそうだ。