Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以编程方式检查OpenGL支持_Java_Opengl - Fatal编程技术网

Java 以编程方式检查OpenGL支持

Java 以编程方式检查OpenGL支持,java,opengl,Java,Opengl,我的swing应用程序正在尝试使用OpenGL来获得更好的性能。但在某些机器上,用户界面根本不加载。如何以编程方式确定是否支持OpenGl,以便在xrenderer/OpenGl之间切换 xrenderer在我测试过的所有机器上都能正常工作,但我宁愿使用OpenGL 这是我用来启用OpenGL的 System.setProperty("sun.java2d.opengl","True"); 这是我在控制台上看到的: “为屏幕1上的默认配置启用OpenGL管道”。我想这意味着OpenGL是打开的

我的swing应用程序正在尝试使用OpenGL来获得更好的性能。但在某些机器上,用户界面根本不加载。如何以编程方式确定是否支持OpenGl,以便在xrenderer/OpenGl之间切换

xrenderer在我测试过的所有机器上都能正常工作,但我宁愿使用OpenGL

这是我用来启用OpenGL的

System.setProperty("sun.java2d.opengl","True");
这是我在控制台上看到的: “为屏幕1上的默认配置启用OpenGL管道”。我想这意味着OpenGL是打开的,但是UI组件不会加载,屏幕是白色的。我仍然可以点击看不见的按钮。


编辑:某种程度上解决了问题,OpenGL在屏幕1上启用,但在屏幕0上未启用。我不知道如何强制在0和1上启用它。断开第二个显示导致OpenGL在屏幕0上启用bve,但这没有帮助,应用程序仍然是空白的

您的意思是-系统有视频卡,OpenGL由GPU物理加速,不在CPU上工作,即Mesa CPU模式?在大多数情况下-如果您不使用任何3D图形,您不应该关心这一点,例如,在Windows上,Java2D使用DirectDraw进行加速,而不是OpenGL。@VictorGubin我的GPU支持OpenGL,只是在多监视器设置中,我无法确定如何为两个屏幕启用OpenGL管道,即未启用的屏幕(屏幕0或1)根本不绘制UI。我只使用2D图形,所以我应该跳过OpenGL?我在其他地方读到,启用它可以提高绘图性能,就像您需要升级图形驱动程序一样。例如,安装支持同时显示多个屏幕的专有驱动程序。我不认为这是代码问题。@VictorGubin,即使不是一个代码问题,我如何通过代码检查这个问题?我的意思是,如果我不知道用户安装了什么,我应该如何选择渲染器?这其实不是那么简单。你需要使用直接的OpenGL绑定到java,比如,阅读视频卡设备等。