グラフィックに Java2D を使用して 2D ゲームを開発しています。Windows 7 で起動したときに同じハードウェアが 60 FPS を維持している場合、OSX デバイスでパフォーマンスが著しく低下します。
私はいくつかの調査を行っており、他の問題の中でも特に、Apple はイメージを管理したくないように見えることがわかりました。
画像が描画されるたびに印刷する行を追加しました-
System.out.println(image.getCapabilities(GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration()).isAccelerated());
Windows では、約 2 秒後に、これは常に true になります。Mac では、実行時間に関係なく、これは false として表示されます。
すべての画像は TYPE_INT_ARGB として表示されます。画像操作は行っていません。管理できません。OSX でイメージを管理する方法についてアドバイスをいただけますか?
編集:
私がテストしているMacのSystem.propertiesは次のとおりです。
sun.java2d.opengl=true
java.runtime.name=Java(TM) SE Runtime Environment
sun.boot.library.path=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Libraries
java.vm.version=20.51-b01-456
awt.nativeDoubleBuffering=true
gopherProxySet=false
mrj.build=10M4508
java.vm.vendor=Apple Inc.
java.vendor.url=http://www.apple.com/
java.vm.name=Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg=sun.io
sun.java.launcher=SUN_STANDARD
user.country=US
sun.os.patch.level=unknown
java.vm.specification.name=Java Virtual Machine Specification
java.runtime.version=1.6.0_51-b11-456-10M4508
java.awt.graphicsenv=apple.awt.CGraphicsEnvironment
java.endorsed.dirs=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/endorsed
os.arch=x86_64
apple.awt.graphics.UseOpenGL=false