fix gluPerspective and add test