2016-11-30 3 views
0

나는 어디에서나 보았고 OpenGL을 사용하여 간단한 쿼드를 그리는 것처럼 보일 수 없습니다. 창이 올바른 색 배경으로 잘 나타나지만 OpenGL은 상자를 그리지 않습니다. 나는 OpenGL을 4.4.0을 사용하고 있습니다 - 이것은 내가 현재 가지고있는 코드 창 크기가 1920 × 1080LWJGL/OpenGL - 기본 쿼드를 그리지 않음

입니다 20.19.15.4463 빌드 : Main.java의

: EntityBox에서

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

:

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 될 필요가

내가 왜 tole 이었기 때문에 depth_buffer를 사용했는지는 알지 못합니다. 3d를 원한다면 사용됩니다. 및

glfwSwapBuffers(window); 

은 그리기 후에 호출해야합니다.