2016-11-30 52 views
0

我已經看遍了,我似乎無法得到OpenGL來繪製一個簡單的四邊形。 窗口顯示正確的顏色背景,但OpenGL只是不會繪製框。 我使用OpenGL 4.4.0 - 建立20.19.15.4463 窗口大小爲1920x1080LWJGL/OpenGL - 不繪製基本的四邊形

這是我目前擁有的代碼:

在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(); 
} 

回答

0

我固定它: glClear必須

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 

不知道爲什麼,因爲我是容忍的depth_buffer是用來如果你想3D。 和

glfwSwapBuffers(window); 

需要在繪圖後調用。