LWJGL 3:​​窗口没有出现

时间:2016-02-01 21:35:33

标签: java opengl lwjgl

我今天下载了LWJGL 3,发现它几乎完全被重写了。我查了一个关于如何创建窗口的教程,但是我仍然在创建窗口时遇到了问题。

代码运行没有问题:控制台中没有错误,但窗口没有显示!

我希望你能帮助我,我搜索了很多LWJGL 3教程,但它们看起来很旧了,所以我决定在这里提出我的问题。

这是我的代码:

//编辑:改变了我的代码,所以一切都在一个线程中运行,但它仍然不起作用。甚至System.out.println()也不起作用。没有显示控制台输出!

//重要提示:我刚刚意识到这可能是GLFW中的一个错误(我在Linux上工作)!

package net.newworld.test;

import static org.lwjgl.glfw.GLFW.*;
import static org.lwjgl.opengl.GL11.*;

import org.lwjgl.Version;
import org.lwjgl.glfw.GLFWVidMode;

public class Main {
	
	private static long window;
	private static int width = 1280;
	private static int height = 800;
	
	private static void init() {
		
		glfwInit();
		
		System.out.println("Initializing LWJGL...");
		System.out.println("LWJGL Version: "+ Version.getVersion());
		
		glfwWindowHint(GLFW_VISIBLE, GL_FALSE); //Set window visible after creation
		
		window = glfwCreateWindow(width, height, "New World", 0, 0);
		
		GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor()); //Get primary monitor
		
		glfwSetWindowPos(window, (vidmode.width() - width) / 2, (vidmode.height() - height) / 2); //Set window position
		
		glfwMakeContextCurrent(window); //Make OpenGL contect current
		
		glfwShowWindow(window); //Show window
	}
	
	public static void main(String[] args) {
		init();
	}
}

1 个答案:

答案 0 :(得分:0)

问题可能是您忘记添加窗口proc循环(正在阻止)

public static void main(String[] args) {
    init();
    while (!glfwWindowShouldClose(window)) {
        glfwWaitEvents();
    }
}