我正在开发一个使用 Java2D 进行图形的 2D 游戏。当使用 Windows 7 启动相同的硬件保持 60 FPS 时,我在 OSX 设备上的性能非常糟糕。
我一直在做一些调查,发现除其他问题外,Apple 似乎不想管理图像。
每次绘制图像时,我都会添加一行以打印出来-
System.out.println(image.getCapabilities(GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration()).isAccelerated());
在 Windows 上,大约 2 秒后,这总是正确的。在 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