[OSX]Using GLUT and OpenGL on Mac OS X | Cocoa練習帳

[OSX]Using GLUT and OpenGL on Mac OS X

先日のMSM2012の抽選会で『OpenGL+GLSLによる物理ベースCGアニメーション』をいただいてしまった。これは自分に対する宿題と考え、OpenGLについて取り組んでみることにする。




ただ、この書籍はサンプルコードで動きを確認しながら学習していく内容なのだが、Windows環境向けで、OS XのXcodeで動かすのは困難な為、一つずつ、進める事にした。




GLUTのアプリケーションをXcodeでビルドするには、以下のヘッダーファイルをインクルードする必要がある。




#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#include <GLUT/glut.h>



そして、以下の内容でMakefileを記述すればいい。




cc -framework GLUT -framework OpenGL -framework Cocoa glutapp.c -o glutapp



ただ、折角のOSXなので、Xcodeを利用したい。ということで、著者は以下の手順でプロジェクトを作成した。





  • プロジェクトの雛形は、OS XのCommand Line Tools。
    Cocoaの便利な機能を利用したい為、TypeはC++でなく、Foundationとした。

  • OpenGL.frameworkとGLUT.frameworkを追加する。

  • 雛形で生成されるmain.mをmain.mmに変更して、C++を利用できるようにする。




とりあえず、main.mmを以下の内容にして、GLUTウィンドウが開くことを確認する。




#import <iostream>
#import <Foundation/Foundation.h>
#import <OpenGL/gl.h>
#import <OpenGL/glu.h>
#import <GLUT/glut.h>


void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    
    glutSwapBuffers();
}


int main(int argc, const char * argv[])
{


    @autoreleasepool {
        
        glutInit(&argc, (char **)argv);
        glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
        glutInitWindowSize(600, 500);
        glutInitWindowPosition(500, 100);
        glutCreateWindow("GL_Affine");
        glutDisplayFunc(display);
        glutMainLoop();
    }
    return 0;
}



関連情報
Using GLUT and OpenGL on Mac OS X

OpenGL Progrmming Guide for Mac

OpenGL Programming on Mac OS X

OpenGL+GLSLによる物理ベースCGアニメーション



【Cocoa練習帳】
http://www.bitz.co.jp/weblog/

http://ameblo.jp/bitz/(ミラー・サイト)