たいした話ではないですが、Macで動くOpenGLアプリケーションを作るときにたまに詳細を忘れてしまうので、そのメモです。
プロジェクトの作成
iPhoneアプリケーションと違って、OS X用のOpenGLアプリケーションテンプレートは存在しないので、他のプロジェクトから作る事になります。どのテンプレートを使ってもあまり影響はないのですが、基本的にはCocoa Applicationのテンプレートを使うのが一番無難です。
GLUTでプログラムを記述する場合、Command Line Toolのテンプレートでも良いですが、OS X上で動くアプリケーションの場合はテクスチャの読み込み時やセーブデータの保存時等、Cocoaの機能を使った方が便利なことが多いので、Cocoa Applicationにしておいたほうが便利です。
フレームワークの追加
OpenGL / GLUTを使うのに必要なフレームワークをプロジェクトに追加します。追加するフレームワークはGLUT.frameworkとOpenGL.frameworkの二つです。
main関数の書き換え
GLUTを使ったアプリケーションの場合、ランループの管理、ウィンドウの管理等はGLUTを使って行うことになります。そこで、main関数の中身を書き換えてCocoaによるウィンドウ生成/ランループの開始をキャンセルします。
#import <GLUT/GLUT.h>
#import <Cocoa/Cocoa.h>
void display()
{
}
int main(int argc, char *argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
glutInit(&argc, argv);
glutCreateWindow("Foo");
glutDisplayFunc(display);
glutMainLoop();
[pool drain];
return 0;
// return NSApplicationMain(argc, (const char **) argv);
}