GLUTの位置付けがようやく分かった(遅)。GLUTってのは描画以外のウィンドウシステムやらイベントやらの処理を共通APIとしてまとめたもの。なので、その辺をGLUTでやるかCocoaでやるかで分かれるってわけだ。
GLUTを使って書かれたサンプルでも、GLUTの部分をNSOpenGLView等のクラスをうまく使ってCocoaで書き直してやれば、gl.hに関する描画部分はそのまんま使える。
NSOpenGLViewをIBで張った場合、初期設定は自動でやってくれるのでその辺りの関数は呼ばれない。ただし、この場合の初期設定は限られているので、詳細を設定する場合はNSViewのカスタムクラスとして貼付けておかなければならない。
現行の NSOpenGLView の Interface Builder インスペクタが提供しているピクセルフォーマット属性のセットは限られているため、追加のピクセルフォーマット属性が必要なアプリケーションは、Custom View のアプローチを使用する必要があります。たとえば、ダブルバッファリングは、NSOpenGLView インスペクタでは、ピクセルフォーマット属性としては現在のところ使用できません。
・・・中略・・・
NSOpenGLView を Graphics Views パレットからドラッグしてビューを作成した場合、初期化ルーチン -initWithFrame: および -initWithFrame: pixelFormat: は、この NSOpenGLView に対しては呼び出されません。