我正在开发一个 lwjgl 项目,该项目具有以下代码:
public class DisplayManager {
private static final int WIDTH = 1280;
private static final int HEIGHT = 720;
private static final int FPS_CAP = 120;
public static void createDisplay() {
ContextAttribs attribs = new ContextAttribs(3,2).withForwardCompatible(true).withProfileCore(true);
try {
Display.setDisplayMode(new DisplayMode(WIDTH, HEIGHT));
Display.create(new PixelFormat(), attribs);
} catch (LWJGLException ex) {
Logger.getLogger(DisplayManager.class.getName()).log(Level.SEVERE, null, ex);
}
GL11.glViewport(0,0,WIDTH,HEIGHT);
}
public static void updateDisplay() {
Display.sync(FPS_CAP);
Display.update();
}
public static void closeDisplay() {
Display.destroy();
}
}
我收到以下错误消息:
org.lwjgl.LWJGLException: Could not create context (WGL_ARB_create_context) at org.lwjgl.opengl.WindowsContextImplementation.nCreate(Native Method) at org.lwjgl.opengl.WindowsContextImplementation.create(WindowsContextImplementation.java:50) at org.lwjgl.opengl.ContextGL.(ContextGL.java:132) at org.lwjgl.opengl.Display.create(Display.java:850) at org.lwjgl.opengl.Display.create(Display.java:797) at javaapplication15.DisplayManager.createDisplay(DisplayManager.java:34) at javaapplication15.engineTester.MainGameLoop.main(MainGameLoop.java:21)
Exception in thread "main" java.lang.RuntimeException: No OpenGL context found in the current thread. at org.lwjgl.opengl.GLContext.getCapabilities(GLContext.java:124) at org.lwjgl.opengl.GL11.glViewport(GL11.java:3261) at javaapplication15.DisplayManager.createDisplay(DisplayManager.java:41) at javaapplication15.engineTester.MainGameLoop.main(MainGameLoop.java:21) Java Result: 1
最佳答案
它可能无法回答您的问题,但我的解决方案可能对其他人有帮助。 如果您的笔记本电脑有集成显卡和其他更强大的显卡,您可能会收到此错误。这是因为您创建的程序使用集成显卡,不支持OpenGL 3.2。但是,如果您切换到第二个更强大的显卡,您的程序将正常工作。
关于java lwjgl获取无法创建上下文(WGL_ARB_create_context),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26952746/