【发布时间】:2018-06-27 09:08:38
【问题描述】:
我今天下载了 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();
}
}
【问题讨论】:
-
你在哪里调用函数
run()? -
@Poriferous 因为我实现了 Runnable
-
这可能是问题所在。你不应该让 OpenGL/GLFW 运行另一个线程。将所有内容集中在一个线程中。尝试摆脱
Runnable接口,重写您的代码,看看是否有助于解决您的问题。 -
我更改了我的代码(见上文),但仍然无法正常工作。
-
你忘记调用
glfwInit()函数了。