The full title of this book is “OpenGL Programming on Mac OS X: Architecture, Performance and Integration.” Its fortunate authors are Robert P. Kuehne and J. D. Sullivan, two professionals who thoroughly know what they are talking about. Moreover, the book has been published by one of my favorites, Addison-Wesley. Therefore, success in conveying the details of OpenGL Programming on the Apple platform seems guaranteed. After reading it, I confirmed that any graphics programmer will learn a lot of things from this book. And nowadays, with a market saturated by rushed books, it’s a bliss.
As suggested, this book has plenty of shining points, but there is a germane disclaimer: this is not a book for starting to learn OpenGL. As stated in the book’s first pages, it’s aimed at two categories of programmers:
- Mac developers in general,
- and those with OpenGL foundations who want to explore the enormous benefits of OpenGL development on Mac OS X.
I do strongly believe that any OpenGL developer will benefit of studying this great book. However, I don’t know of any good book for learning OpenGL from scratch. I can point you to the Red Book or even the OpenGL SuperBible, which are superb references for novices, but both exhibit some important pedagogical flaws. On the contrary, “OpenGL Programming for Mac OS X” is indeed a very good book from the pedagogical standpoint, but it has a somewhat advanced level, covering very specific topics:
- Mac OpenGL Introduction
- OpenGL Architecture on OS X
- Mac Hardware Architecture
- Application Programming on OS X
- OpenGL Configuration and Integration
- The CGL API for OpenGL Configuration
- The AGL API for OpenGL Configuration
- The Cocoa API for OpenGL Configuration
- The GLUT API for OpenGL Configuration
- API Interoperability
- Performance
- Mac Platform Compatibility
- OpenGL Extensions
The book also contains 4 useful appendices:
- X11 APIs for OpenGL Configuration
- Glossary
- The Cocoa API for OpenGL Configuration in Leopard, Mac OS X 10.5
- Bibliography
More resources should be available on the book’s companion website. At the time of this writing, you can download the source code from that page as a locked zipped file. By the way, I think the authors’ decision of password-protecting their sources is weird (to say the least).
In respect to the content, all of the explanations are crystal clear, focused into the concepts and techniques OpenGL developers really need. The book comprises OpenGL architecture and configuration on OS X, and the various APIs we can use in order to create OpenGL applications, specifically, CGL, AGL, Cocoa, (our old buddy) GLUT, and X11 APIs. A chapter focused into API Interoperability is also included, and is very complete. But there is much more information in this book: history notes, a germane review of Mac’s hardware, OS X programming, compatibility between Mac platforms, and a discussion about OpenGL extensions. The glossary in the appendices proves to be very useful, and so are the notes about Cocoa API for OpenGL in Leopard.
Personally, Chapter 11 is the one I’ve enjoyed the most. The technical wisdom revealed in such chapter almost justifies by itself the full cost of the book. It’s such a fine chapter. The almost 5 pages covering the “Axioms for Designing High-Performance OpenGL Applications” are very interesting, particularly the care we must have when doing our OpenGL drawing in Object-Oriented programs; we could easily incur considerable glVertex overhead, if our code is not properly structured. The little tutorial section “Putting It All Together” includes a detailed optimization of an OpenGL program, “Please Tune Me”. It’s just the kind of practical stuff that programmers love. Delicious. Very Recommended.
Your recommendation is very praiseful 🙂 But this indeed seems a good book.
I agree with you, completely, in regards to the Red Book pedagogical problems… sometimes it seems just like reading a reference book!
I have to read the Red Book as I want to learn to program games…
The book is very good, I agree
yeah, ch 11 is superb