title: Can't get depth testing to work in OpenGL
body: <p>I use <a href="http://www.sfml-dev.org/" rel="noreferrer" title="SFML">SFML</a> to create the window.</p>
  
  <p>In this screenshot the cube should be behind the pyramid but it just doesn't work.
  <img src="https://i.stack.imgur.com/8IZIV.png" alt="Screenshot"></p>
  
  <p>Here is the minimal code I used:</p>
  
  <pre><code>#include &lt;OpenGL/gl.h&gt;
  #include &lt;OpenGL/glu.h&gt;
  
  #include &lt;SFML/Graphics.hpp&gt;
  #include "ResourcePath.hpp"
  
  void resize();
  void drawScene();
  void initGL();
  
  float rtri = 0;
  float rquad = 0;
  float z = -10.0f;
  int main (int argc, const char * argv[])
  {
      // Create the main window
      sf::RenderWindow *window = new sf::RenderWindow();
      window-&gt;Create( sf::VideoMode( 800, 600, 32 ), "Collision Detection", sf::Style::Close );
  
      sf::Event event;
  
      bool run = true;
      initGL();
      resize();
      while( run ) {
          window-&gt;PollEvent( event );
          if( event.Type == sf::Event::Closed ) {
              run = false;
          }
  
          drawScene();
          window-&gt;Display();
  //        z+= 0.001f;
      }
  
      return EXIT_SUCCESS;
  }
  
  void resize() {
      glViewport(0,0, 800,600);
  
      glMatrixMode(GL_PROJECTION);
      glLoadIdentity();
  
      // Calculate The Aspect Ratio Of The Window
      gluPerspective(45.0f,800/600,0.1f,100.0f);
  
      glMatrixMode(GL_MODELVIEW);
      glLoadIdentity();
  }
  
  void drawScene() {
      glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear Screen And Depth Buffer
      glLoadIdentity();                   // Reset The Current Modelview Matrix
      glTranslatef(0.0f,0.0f,-6.0f);      // Move Left 1.5 Units And Into The Screen 6.0
      glRotatef(rtri,0.0f,1.0f,0.0f);     // Rotate The Triangle On The Y axis ( NEW )
      glBegin(GL_TRIANGLES);  
      glColor3f(1.0f,0.0f,0.0f);
      glVertex3f( 0.0f, 1.0f, 0.0f);
      glColor3f(0.0f,1.0f,0.0f);  
      glVertex3f(-1.0f,-1.0f, 1.0f);
      glColor3f(0.0f,0.0f,1.0f);      
      glVertex3f( 1.0f,-1.0f, 1.0f);  
      glColor3f(1.0f,0.0f,0.0f);      
      glVertex3f( 0.0f, 1.0f, 0.0f);  
      glColor3f(0.0f,0.0f,1.0f);      
      glVertex3f( 1.0f,-1.0f, 1.0f);  
      glColor3f(0.0f,1.0f,0.0f);      
      glVertex3f( 1.0f,-1.0f, -1.0f); 
      glColor3f(1.0f,0.0f,0.0f);      
      glVertex3f( 0.0f, 1.0f, 0.0f);  
      glColor3f(0.0f,1.0f,0.0f);      
      glVertex3f( 1.0f,-1.0f, -1.0f); 
      glColor3f(0.0f,0.0f,1.0f);      
      glVertex3f(-1.0f,-1.0f, -1.0f); 
      glColor3f(1.0f,0.0f,0.0f);      
      glVertex3f( 0.0f, 1.0f, 0.0f);  
      glColor3f(0.0f,0.0f,1.0f);      
      glVertex3f(-1.0f,-1.0f,-1.0f);  
      glColor3f(0.0f,1.0f,0.0f);      
      glVertex3f(-1.0f,-1.0f, 1.0f);  
      glEnd();                        
  
      glLoadIdentity();               // Reset The Current Modelview Matrix
      glTranslatef(0.0f,0.0f,z);      // Move Right 1.5 Units And Into The Screen 7.0
      glRotatef(rquad,1.0f,1.0f,z);   // Rotate The Quad On The X axis ( NEW )
      glBegin(GL_QUADS);          
      glColor3f(0.0f,1.0f,0.0f);  
      glVertex3f( 1.0f, 1.0f,-1.0f);
      glVertex3f(-1.0f, 1.0f,-1.0f);
      glVertex3f(-1.0f, 1.0f, 1.0f);
      glVertex3f( 1.0f, 1.0f, 1.0f);
      glColor3f(1.0f,0.5f,0.0f);  
      glVertex3f( 1.0f,-1.0f, 1.0f);
      glVertex3f(-1.0f,-1.0f, 1.0f);
      glVertex3f(-1.0f,-1.0f,-1.0f);
      glVertex3f( 1.0f,-1.0f,-1.0f);  
      glColor3f(1.0f,0.0f,0.0f);      
      glVertex3f( 1.0f, 1.0f, 1.0f);
      glVertex3f(-1.0f, 1.0f, 1.0f);
      glVertex3f(-1.0f,-1.0f, 1.0f);
      glVertex3f( 1.0f,-1.0f, 1.0f);
      glColor3f(1.0f,1.0f,0.0f);  
      glVertex3f( 1.0f,-1.0f,-1.0f);
      glVertex3f(-1.0f,-1.0f,-1.0f);
      glVertex3f(-1.0f, 1.0f,-1.0f);
      glVertex3f( 1.0f, 1.0f,-1.0f);
      glColor3f(0.0f,0.0f,1.0f);  
      glVertex3f(-1.0f, 1.0f, 1.0f);
      glVertex3f(-1.0f, 1.0f,-1.0f);
      glVertex3f(-1.0f,-1.0f,-1.0f);
      glVertex3f(-1.0f,-1.0f, 1.0f);
      glColor3f(1.0f,0.0f,1.0f);  
      glVertex3f( 1.0f, 1.0f,-1.0f);
      glVertex3f( 1.0f, 1.0f, 1.0f);
      glVertex3f( 1.0f,-1.0f, 1.0f);
      glVertex3f( 1.0f,-1.0f,-1.0f);
      glEnd();                                            // Done Drawing The Quad
  
      rtri+=0.2f;                                         // Increase The Rotation Variable For The Triangle ( NEW )
      rquad-=0.15f;
      z-=0.01;
  }
  
  void initGL() {
      glShadeModel(GL_SMOOTH);                            // Enable Smooth Shading
      glClearColor(0.0f, 0.0f, 0.0f, 0.5f);               // Black Background
      glClearDepth(1.0f);                                 // Depth Buffer Setup
      glEnable(GL_DEPTH_TEST);                            // Enables Depth Testing
      glDepthFunc(GL_LEQUAL);                             // The Type Of Depth Testing To Do
      glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
      glEnable( GL_CULL_FACE );
  
      /* Position the camera */
      glTranslatef(0, 0, -5);
  }
  </code></pre>
  
  <p>I've tried different depth functions, GL_LESS, GL_EQUAL, I've tried them all. Also enabling and disabling depth testing on different places, nothing seems to work.</p>
  
  <p>I'm running Mac OS X 10.7 ( Lion ), not sure if that is important, though I didn't seem to have any trouble with these kind of things before upgrading.</p>