有没有办法检测Java FX是否正在使用硬件加速?

时间:2013-01-28 16:18:47

标签: java javafx-2 hardware-acceleration

与此相关的是,有没有办法强制Java FX使用硬件加速和炸弹,如果它不能?

5 个答案:

答案 0 :(得分:14)

刚刚发现:

您可以使用-Dprism.verbose=true运行,它将打印它使用的图形管道。用于软件的“sw”或“j2d”和用于硬件加速的“d3d”或“es2”。

答案 1 :(得分:2)

你也可以试试这个黑客

@SuppressWarnings("restriction")
static String getCurrentGraphicsPipeline() {
    return com.sun.prism.GraphicsPipeline.getPipeline().getClass().getName();
}

如果您回来"com.sun.prism.sw.SWPipeline",那么您正在使用软件加速。所有其他值都意味着可能正在使用某种形式的硬件加速。

答案 2 :(得分:1)

如果您使用eclipse作为IDE,那么您需要传递这些VM参数。您可以在运行配置中添加这些VM参数。

将这些论点放在那里: -Dprism.verbose=true

Have a look at the image for more information

答案 3 :(得分:0)

可以使用-Dprism.order=es2 VM选项设置图形管道。您可以将es2替换为所需的管道(d3d,sw,j2d)。

答案 4 :(得分:0)

对于软件渲染器,SCENE 3D 功能被禁用。

if(Platform.isSupported(ConditionalFeature.SCENE3D)) {
    // hardware accelerated renderer
} else {
    // software renderer
}