JavaFX 是否在 macOS 上使用新的基于 Metal 的 Java 渲染?

Bas*_*que 4 java javafx metal openjfx

JavaFX/ OpenJFX的最新版本(19、20 等)是否使用为 macOS 上的 Java 构建的新Metal渲染来取代 OpenGL?

JEP 382:新的 macOS 渲染管道

这个新管道成为Java 19 中的默认管道

jew*_*sea 6

不。自 20 日起,JavaFX 不使用 Apple Metal API。

对于Mac 上的硬件加速,JavaFX 使用OpenGL ES2。它也可以回退到软件渲染器,但你必须强制它这样做,它默认使用 ES2。

有使用 Apple Metal API 进行 JavaFX 3D 渲染的实验性概念验证工作。可以在 jfx-sandbox 存储库的拉取请求中找到该实现(这不是用于 JavaFX 版本的主线存储库):

沙箱中的金属分支有很多最近的变化:

也许将来 JavaFX 中会添加 Metal 支持。

如果您还有其他疑问,请在openjfx-dev 邮件列表上提出该主题。

JavaFX Metal 支持的主要问题跟踪器:


据我所知,作为JEP 382的一部分,Mac 上对 JDK 的 Metal 支持所做的工作仅适用于Java2D API。JavaFX 不使用 Java2D API(据我所知),除非可能有助于打印支持。支持 Metal 的 Java2D 工作可以由作为核心 JDK 一部分的 AWT 和 Swing 框架使用。JavaFX 不再是 JDK 的一部分,因此 JEP 流程不适用于它。