lwjgl/openGL-未绘制基本四元



我到处都是,我似乎无法获得opengl来绘制一个简单的四分之一。窗口以正确的颜色背景显示正常,但是OpenGL不会绘制盒子。我正在使用OpenGL 4.4.0-构建20.19.15.4463窗口大小为1920x1080

这是我当前拥有的代码:

在main.java中:

public void init(){
    if(glfwInit() != true){
        System.err.println("GLFW failed to initialize");
    }
    glfwWindowHint(GLFW_RESIZABLE, GL_TRUE);
    //TODO change name.
    window = glfwCreateWindow(width, height, "GameName", NULL, NULL);
    if(window == NULL){
        System.err.println("Window failed to be created");
    }
    GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
    glfwSetWindowPos(window, 100, 100);
    glfwMakeContextCurrent(window);
    glfwShowWindow(window);
    GL.createCapabilities();
    glClearColor(0.0f, 0.5f, 1.0f, 1.0f);
    glEnable(GL_DEPTH_TEST);

    //set up projection matrix; allows us to draw.
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0, width, height, 0, 1, -1);
    glMatrixMode(GL_MODELVIEW);

    testBox = new EntityBox(3, Color.RED);//just to test right now
    System.out.println("OpenGL: "+ glGetString(GL_VERSION));
}
public void update(){
    glfwPollEvents();
}
public void render(){
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glLoadIdentity();
    glfwSwapBuffers(window);
    testBox.draw();
}

在EntityBox中:

public void draw(){
    glColor3f(1.0f, 0.0f, 0.0f);
    glBegin(GL_QUADS);
        glVertex2f(0,0);
        glVertex2f(0,100);
        glVertex2f(100,0);
        glVertex2f(100,100);
    glEnd();
}

我修复了它:Glclear需要

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

不知道为什么,因为如果您想要3D,我会使用tole depth_buffer。和

glfwSwapBuffers(window);

需要在绘图后调用。

相关内容

  • 没有找到相关文章

最新更新