java - 如何在 JavaFX 中禁用或绕过硬件图形加速(Prism)

标签 java opengl javafx

操作系统:OSX Mountain Lion。

系统:Virtual BOX 4.2.6.

Java:1.7.0.40-ea-b34

我想为我的 JAVAFX 应用程序禁用硬件加速,因为我的系统 (mac) 上没有硬件加速。因此,当没有硬件加速时,我在执行 JAVAFX 应用程序时遇到 fatal error 。与“棱镜引擎管道”相关的错误,它发生在 java 尝试执行 openGL native 库时。所以我想禁用棱镜。

我看到有一些 vm args 控制 prism 行为,比如.. Dprism.forceGPU=true;

有没有类似上面的东西来禁用棱镜或 openGL 请求?

fatal error (openGl相关代码)

Stack: [0x000000016c8f9000,0x000000016c9f9000], sp=0x000000016c9f7f40, free space=1019k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libobjc.A.dylib+0x639f] objc_msgSend_fixup+0x5f
C [AppKit+0x28134c] -[NSOpenGLContext initWithFormat:shareContext:]+0xac
C [libprism-es2.dylib+0x4e9f] createContext+0x1b3
C [libprism-es2.dylib+0x4729] Java_com_sun_prism_es2_gl_mac_MacGLFactory_nInitialize+0xa2
j com.sun.prism.es2.gl.mac.MacGLFactory.nInitialize([I)J+0
j com.sun.prism.es2.gl.mac.MacGLFactory.initialize(Ljava/lang/Class;Lcom/sun/prism/es2/gl/GLPixelFormat$Attributes;)Z+73
j com.sun.prism.es2.ES2Pipeline.<clinit>()V+54 

最佳答案

j2d 图形管道在 JavaFX 8 中已被弃用,因此最好使用软件管道:-Dprism.order=sw。要验证您是否确实在使用它,您可以打开日志记录:-Dprism.verbose=true

关于java - 如何在 JavaFX 中禁用或绕过硬件图形加速(Prism),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18754803/

相关文章:

JavaFX EventHandler 传递参数

java - 尝试从程序的主方法调用父类(super class)方法时生成错误

java - 解析字符串内的变量 - JSTL?

c++ - 为什么我在包含加载程序 header 时无法使用 OpenGL 函数?

c++ - 最新的 C++ OpenGL 教程或书籍

css - JavaFX - 应用于按钮的 -fx-background-color 不起作用

java - 如何在java中检查结果集是否为空或为null

java - 无法在 mac os high sierra 中启动 uiautomatorviewer

c++ - 检查所有使用的 OpenGL 扩展

java - 调整没有文本的 GridPane 按钮的大小