An Alternative to gluPerspective by Dranith

Motive

gluPerspective is a very very handy function for setting up the projection matrix. The only problem it has that I see is the FOV it takes is the FOV in the Y direction. So either you have no control over the FOV in the X direction, or you have the source to gluPerspective and you do some fancy trig to figure out the Y FOV value you need to input to get the desired X FOV.

Both these ways suck. So heres the code that lets you specify the FOV in the X direction. Code is based off the MESA implementation of gluPerspective.

Not to mention this is a point of confusion for people new to OpenGL. I didn't even notice that it took the Y FOV till a few days ago when I was doing something that I needed to be able to specify in X and things weren't working =).