2016-09-22 5 views
1

以下のように、新しいプロジェクトを開始するときにcodeblocksによって提供されるデフォルトのテンプレートを使用していても、プロジェクトでコードブロックを使用してGLFWでデプステストを行うことはできません。GLFW/OpenGLデプステストが動作しないようです

私は何か間違ったことをしているに違いないが、私はそれを見つけることができなかったことを知っているので、どんな助けもありがたいです。 GLFW2 documentation(強調鉱山)から

#include <GL/glfw.h> 

int main() 
{ 
int  width, height; 
int  frame = 0; 
bool running = true; 

glfwInit(); 

if(!glfwOpenWindow(512, 512, 0, 0, 0, 0, 0, 0, GLFW_WINDOW)) 
{ 
    glfwTerminate(); 
    return 0; 
} 

glfwSetWindowTitle("GLFW Application"); 

glEnable(GL_DEPTH_TEST); 

while(running) 
{ 
    frame++; 

    glfwGetWindowSize(&width, &height); 
    height = height > 0 ? height : 1; 

    glViewport(0, 0, width, height); 

    glClearColor(0.0f, 0.0f, 0.0f, 0.0f); 
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 

    glMatrixMode(GL_PROJECTION); 
    glLoadIdentity(); 
    gluPerspective(65.0f, (GLfloat)width/(GLfloat)height, 1.0f, 100.0f); 

    // Draw some rotating garbage 
    glMatrixMode(GL_MODELVIEW); 
    glLoadIdentity(); 
    gluLookAt(0.0f, -10.0f, 0.0f, 
      0.0f, 0.0f, 0.0f, 
      0.0f, 0.0f, 1.0f); 

    //glTranslatef(1.0f, 1.0f, 0.0f); 
    glRotatef(frame, 0.25f, 1.0f, 0.75f); 
    glBegin(GL_TRIANGLES); 
     glColor3f(0.1f, 0.0f, 0.0f); 
     glVertex3f(0.0f, 3.0f, -4.0f); 
     glColor3f(0.0f, 1.0f, 0.0f); 
     glVertex3f(3.0f, -2.0f, -4.0f); 
     glColor3f(0.0f, 0.0f, 1.0f); 
     glVertex3f(-3.0f, -2.0f, -4.0f); 
    glEnd(); 
    glBegin(GL_TRIANGLES); 
     glColor3f(0.0f, 0.1f, 0.0f); 
     glVertex3f(0.0f, 3.0f, -3.0f); 
     glColor3f(0.0f, 0.0f, 1.0f); 
     glVertex3f(3.0f, -2.0f, -2.0f); 
     glColor3f(1.0f, 0.0f, 0.0f); 
     glVertex3f(-3.0f, -2.0f, 2.0f); 
    glEnd(); 
    glfwSwapBuffers(); 

    // exit if ESC was pressed or window was closed 
    running = !glfwGetKey(GLFW_KEY_ESC) && glfwGetWindowParam(GLFW_OPENED); 
} 

glfwTerminate(); 

return 0; 

}

答えて

0

int glfwOpenWindow 
    (
    int width, int height, 
    int redbits, int greenbits, int bluebits, 
    int alphabits, 
    int depthbits, 
    int stencilbits, 
    int mode 
    ) 

depthbits:デプスバッファに使用するビット数(0はデプスバッファを意味しません)

そして、あなたのコードは:

glfwOpenWindow(512, 512, 0, 0, 0, 0, 0, 0, GLFW_WINDOW) 
            ^no depth bits 

あなたは(有効)任意の深さのビットなしデプスバッファを使用することはできません。

+0

ありがとうございます、使用する深さビットの推奨数は何ですか? 16または24? – Whaill

+0

@Whaill:[GLFW3 docs](http://www.glfw.org/docs/latest/window_guide.html)では、 'GLFW_DEPTH_BITS'のデフォルトは' 24'であり、私にとっては妥当であると言います。 – genpfault

関連する問題