How do you make OpenGL test the polygon against the z-buffer but not write the new values in it?
glDepthMask(GL_FALSE);