OpenGL programming guide by Dave Shreiner | Menrva Books