gpt4 book ai didi

java - 初始化后 OpenGL 窗口卡住

转载 作者:行者123 更新时间:2023-12-02 03:52:16 24 4
gpt4 key购买 nike

我尝试学习 LWJGL 3,但在我创建一个窗口后,它在打开应用程序后立即卡住。

我尝试重新安装 LWJGL 并在另一台计算机上运行该应用程序,但没有任何区别。

是我的代码错误还是硬件问题?

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

import org.lwjgl.opengl.GL;

public class Game implements Runnable{

private Thread thread;
private long window;

private boolean running = false;

public static void main(String[] args){
new Game().start();
}

public void start(){
running = true;
thread = new Thread(this);
thread.start();
}

@Override
public void run() {
float fps = 60;
float ns = 1000000000 / fps;
float delta = 0;
long last = System.nanoTime();

init();
while(running){
delta += (System.nanoTime() - last) / ns;

while(delta-- >= 1){
update();
}

render();

last = System.nanoTime();

if(glfwWindowShouldClose(window) == GL_TRUE) running = false;
}
}

public void init(){
if(glfwInit() != GL_TRUE){
System.exit(1);
}

glfwWindowHint(GLFW_RESIZABLE, GL_TRUE);

window = glfwCreateWindow(800, 640, "OpenGL Test", NULL, NULL);

if(window == NULL){
System.exit(1);
}

glfwMakeContextCurrent(window);
GL.createCapabilities();

glfwSetWindowPos(window, 300, 300);

glfwShowWindow(window);
}

public void update(){
glfwPollEvents();
}

public void render(){
glClearColor(1, 1, 1, 1);
glClear(GL_COLOR_BUFFER_BIT);
glfwSwapBuffers(window);
}

}

最佳答案

为了执行 OpenGL 渲染,您必须有一个视口(viewport),并且必须从当前视口(viewport)创建一个上下文。在初始化方法中,在代码末尾添加这两行:

GLContext.createFromCurrent();

glViewport(0, 0, 宽度, 高度);

关于java - 初始化后 OpenGL 窗口卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35781188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com