JavaFX 60 fps帧速率上限不起作用

时间:2017-08-22 07:58:56

标签: java linux javafx

我正在处理使用AnimationTimer()类的JavaFX动画。根据所有可能的来源,默认情况下它应该以60 fps工作。但是,在我的笔记本电脑上,它会以更高的速率刷新:300 - 700,具体取决于窗口大小。我在Manjaro Linux GNOME Edition上使用IntelliJ IDEA Community Edition和Oracle JDK8。我已经尝试过其他JDK - 仍然是同样的情况。它的行为就好像JVM选项javafx.animation.fullspeed设置为true,但事实并非如此。在另一台运行Manjaro GNOME版本的机器上也是如此。

我尝试过(未记录的)JVM选项:

javafx.animation.fullspeed=false | true

javafx.animation.framerate=value

javafx.animation.pulse=value

即使Settings.get(key)按设置返回值,它们也不会改变任何内容。

在另一台基于Windows 10的计算机上,FPS表现正常:在默认/无VM选项上保持60值,在javafx.animation.fullspeed=true时全速运行,在Windows上运行,如在Manjaro / VirtualBox上。

1 个答案:

答案 0 :(得分:3)

样本解决方案归功于@James_D发布的评论和以下内容:

<div>
  <button class="menu-button">
    <span>Clickme</span>
  </button>
  <div class="popover-menu">
    Menu
  </div>
</div>

请阅读this question的评论以了解详情。

此外:这可能是双重图形相关的问题。强制使用像import javafx.application.Application; public class Start { public static void main(String[] args) { //must be set before launching the Main class System.setProperty("quantum.multithreaded", "false"); Application.launch(Main.class, args); } } 这样的辅助图形也可以解决它。但是,在生产版本中,我认为最好将# optirun ./idea.sh设置为false。