C++メモ XCodeでOpenGLライブラリを使ってみる

Mac,プログラミング

最近プログラミングしてないな…ってことで、こんなお題で。
いろいろやってみたら、こんな感じだったってのをメモ。

まずはプロジェクトを作成する。

  1. XCodeを起動して"Create a new Xcode project"をクリックする。
  2. “Choose a template for your new project"画面が表示される。
    とりあえず、余計なものは要らないので、"Command Line Tool"を選択して"Next"ボタンをクリックする。
  3. “Choose options for your new project:"画面が表示される。
    ここでは、こんな感じで入力して"Next"ボタンをクリックした。

    • プロジェクト名 “Product Name" … 何でもいいんだけど、ここでは"ProtoOpenGL"と入力
    • 組織名 “Organaization Name" … 特に入力する必要はないので空欄
    • 会社名 “Company Identifier" … ここも何でもいいんだけど、サイト名を入力
    • 種別 “Type" … 言語を選ぶんだけど、"C++"と入力
    • ARC使用有無 “Use Automatic Reference Counting" … とりあえず、今は気にせずチェック"OFF"に設定

  4. プロジェクトを含むファイルの保存先を聞いてくるので、好きなとこを選んで"Create"ボタンをクリックする。
  5. XCodeが起動する。
    今作ったプロジェクトがカレントになってる。

で、次にOpenGLを追加する。

  1. プロジェクトがカレントになっていない場合は、画面左端に表示されているリストから、さっき作ったプロジェクトをクリックする。
    ※リストが表示されていない場合はメニューバーの"View/Navigators/Show Project Navigator"をクリックする。
  2. 画面左端からちょい右のとこに表示されているリストから"TARGETS/(プロジェクト名)"をクリックする。
    ※この記事の場合だと、"ProtoOpenGL"をクリックする。
  3. 中央より右よりにタブがあるので、"Build Phases"タブをクリックする。
  4. “Build Phases"タブ画面で、上から3つ目にある"Link Binary With Libraries (N items)"の左側の▽をクリックする。
    ※N itemsのNは数字。
  5. “Link Binary With Libraries (N items)"の枠の左下にある"+"をクリックする。
    13579_05
  6. “Choose frameworks and libraries to add"画面で次のフレームワークを選択して、"Add"ボタンをクリックする。
    • GLKit.framework
    • GLUT.framework
    • Foundation.framework (これは追加しなくてもいい)

    ※ちなみに、画面の上に"GL"とか"Foundation"って入力してエンターキーを押すと、その文字を含むフレームワークを検索してくれる。

  7. フレームワークがちゃんと追加されると、追加したフレームワークが以下に表示される。
    • “Link Binary With Libraries (N items)"
    • 画面左端のプロジェクトの下

  8. これでフレームワークの追加はおわり。

最後にコーディング。
とりあえず、OpenGLのライブラリだけで空っぽのウィンドウを表示させてみる。

画面左端のリストのmain.cppをクリックしてコードを表示する。

コードはこんな感じ。

//
//  main.cpp
//  ProtoOpenGL
//
//  Created by tetsuyanbo on 2012/12/05.
//

#include <iostream>
#include <GLUT/GLUT.h>

// コールバック関数
void display(void)
{
    return;
}

// メイン関数
int main(int argc, const char* argv[])
{
    // 変数を定義&初期化する
    char title[80] = "sample";
    // GLUTライブラリを初期化する
    glutInit(&argc, (char**)argv);
    // ウィンドウを生成する
    glutCreateWindow(title);
    // カレントウィンドウに対するコールバック関数を設定する
    glutDisplayFunc(display);
    // メインループを開始する
    glutMainLoop();
    // 終了
    return 0;
}

実行するとこんな感じ。

ちなみに、ウィンドウの閉じるボタンを実装していないので、ウィンドウはメニューバーを使って閉じる。

ま…メモってことで。