所以我在过去的一天里一直在试用libgdx并且运行良好,直到我意识到它只能在我的笔记本电脑上使用英特尔图形,而它立即关闭我的桌面上的nvidia 750ti。
根据this github issue,此问题应该已在this commit中修复。
我还尝试过其他帖子推荐的内容,例如here和here(自提交以来不再需要,但值得一试)
System.setProperty("org.lwjgl.opengl.Display.allowSoftwareOpenGL", "true");
但不管你信不信,它不起作用。这是堆栈跟踪
Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: OpenGL is not supported by the video driver.
at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.createDisplayPixelFormat(LwjglGraphics.java:229)
at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.setupDisplay(LwjglGraphics.java:174)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:138)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:120)
Caused by: org.lwjgl.LWJGLException: X Error - disp: 0x7f0f4c000c50 serial: 194 error: BadValue (integer parameter out of range for operation) request_code: 154 minor_code: 24
at org.lwjgl.opengl.LinuxDisplay.globalErrorHandler(LinuxDisplay.java:320)
at org.lwjgl.opengl.LinuxContextImplementation.nCreate(Native Method)
at org.lwjgl.opengl.LinuxContextImplementation.create(LinuxContextImplementation.java:51)
at org.lwjgl.opengl.ContextGL.<init>(ContextGL.java:132)
at org.lwjgl.opengl.Display.create(Display.java:850)
at org.lwjgl.opengl.Display.create(Display.java:757)
at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.createDisplayPixelFormat(LwjglGraphics.java:220)
... 3 more
将堆栈跟踪与this guy进行比较时,原因通常不是Pixel format is not accelerated
而是Caused by: org.lwjgl.LWJGLException: X Error - disp: 0x7f12cc000c50 serial: 194 error: BadValue (integer parameter out of range for operation) request_code: 154 minor_code: 24
。
也许这仅仅是因为我正在运行Linux并且他不是,我不知道。虽然integer parameter out of range for operation
错误是LWJGL认为我的视频驱动程序不支持OpenGL的原因,但看起来确实很奇怪,但这只是猜测。
Here is the exact code that i'm trying to run。我不认为代码应该受到责备,因为它在我的笔记本电脑上运行得很好,但为了以防万一,我已将其添加到此处。
我的笔记本电脑和台式机都安装了最新的Arch Linux安装程序,因此操作系统不应该成为问题。
提前致谢!