元々アクセラレーションが効いていたはずの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で大幅に快適になったのはこういうのも関係ありそうだ。