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

vecaoik1  于 5个月前  发布在  Java
关注(0)|答案(2)|浏览(81)

操作系统:OSX Mountain Lion

系统:虚拟盒子4.2.6.
Java:1.7.0.40-ea-b34

我想禁用我的JAVAFX应用程序的硬件加速,因为我的系统(Mac)上没有硬件加速。因此,当没有硬件加速时,我在执行我的JAVAFX应用程序时出现致命错误。该错误与“Prism Engine pipeline”相关,并且当java尝试执行openGL本地库时会发生。所以我想禁用棱镜。
我看到有一些vm参数可以控制prism行为,比如.. Dprism.forceGPU=true;
有没有类似上面的方法来禁用prism或openGL请求?
致命错误(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

字符串

iswrvxsc

iswrvxsc1#

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

zrfyljdw

zrfyljdw2#

对于Java 8和更高版本,通过在启动JVM时添加以下参数来使用软件仿真管道而不是DirectX 2D管道:

-Dprism.order=sw

字符串
对于Java 7和更早版本,Oracle论坛消息(不再可用)建议添加:

-Dprism.order=j2d


请注意,JDK-8095989已弃用此j2d解决方案。

相关问题