2016-11-30 9 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は

012にする必要があります
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 

私はあなたが3dを望むなら、私はtole depth_bufferが使用されていたので、理由はわかりません。 および

glfwSwapBuffers(window); 

は、描画後に呼び出す必要があります。

関連する問題