トップ «前の日記(2012-11-04) 最新 次の日記(2012-11-07)» 編集

Cocoa練習帳

iOS/iPhone/iPad/watchOS/tvOS/MacOSX/Android プログラミング, Objective-C, Cocoa, Swiftなど

2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|

2012-11-06 [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/(ミラー・サイト)

トップ «前の日記(2012-11-04) 最新 次の日記(2012-11-07)» 編集