Kawanet Blog II

アクセスカウンタ

zoom RSS openFrameworks で Hello, world! してみる (Mac OS X)

<<   作成日時 : 2011/01/09 02:35   >>

なるほど(納得、参考になった、ヘー) ブログ気持玉 6 / トラックバック 0 / コメント 0

openFrameworks http://www.openframeworks.cc/ が格好いいらしい。
プログラムのコードをあんまり書かなくてもネイティブアプリが簡単に作れて、
TrueType フォントを表示したり、Arduino を操ったり、音声再生したり、
ビデオ再生したり、Web カメラを使ったり、OpenCV で画像認識するための
ライブラリがセットになって配布されていて、しかも手軽に使える。

おまけに iPhone アプリも作れて、Android アプリも作れる。
あるいは、ActionScript (Adobe AIR) でも JavaScript でも
両スマートフォンに対応するアプリを作ることができるけど、
openFrameworks なら C++ で高速に動くネイティブアプリが作れる!

今日は、Mac OS X 10.6 (Snow Leopard)で、openFrameworks 0.062 を使って
とりあえず Hello, world! するまでの手順を確認しました。

関連記事


http://kawa.at.webry.info/201101/article_1.html
openFrameworks で Hello, world! してみる (Mac OS X)  (※本記事)
http://kawa.at.webry.info/201101/article_2.html
openFrameworks+ofxKinect アドオンで Kinect の深度センサーを試す
http://kawa.at.webry.info/201101/article_3.html
openFrameworks+ofxiPhoneでiPhone・iPad用Hello, world!

1. まだインストールされてなければ Xcode をインストールする


http://developer.apple.com/devcenter/mac/index.action
『Xcode 3.2.5 and iOS SDK 4.2 Nov 22, 2010』から
xcode_3.2.5_and_ios_sdk_4.2_final.dmg をダウンロードする。
インストールは30分くらいかかるかも。気長に。
ダウンロードには、Apple のディベロッパー登録が必要です(無料)。

2. openFrameworks のパッケージをダウンロードする


http://www.openframeworks.cc/download
『mac x-code FAT (10.6)』から
http://www.openframeworks.cc/versions/preRelease_v0.062/of_preRelease_v0062_osxSL_FAT.zip
をダウンロードして展開する。
展開先は Documents(書類)の中でも、デスクトップでもどこでも OK。

3. 順番に全てのサンプルアプリを試してみる


パッケージにはたくさんのサンプルのソースコードが入っています。
全てのサンプルをコンパイルして、実行してくれるスクリプトがあります。
cd ~/Download/of_preRelease_v0062_osxSL_FAT
cd scripts/osx
sh buildAndRunAllExamples.sh
sh buildAndRunAllAddonsExamples.sh

初回は少し待ちますが、コンパイルが終わり次第、アプリが実行されるます。



アプリを Command + Q で終了すると、
順に次のサンプルアプリのコンパイル・実行が始まります。

4. 改めてファイルのパスを確認する


アプリは以下のようなファイル構成になっています。
xcodeproj ファイルからの相対パスで ../../../libs/openFrameworks が参照できる
配置にしておくのが普通みたい。

・コンパイルされたアプリケーション:
apps/examples/emptyExample/bin/emptyExampleDebug.app
・アプリケーションが使うデータファイル置き場:(なければ空)
apps/examples/emptyExample/bin/data
・Xcode のプロジェクトファイル:
apps/examples/emptyExample/emptyExample.xcodeproj
・アプリの C++ のソースコード・ヘッダファイル:
apps/examples/emptyExample/src/main.cpp
apps/examples/emptyExample/src/testApp.cpp
apps/examples/emptyExample/src/testApp.h

5. テンプレートをインストールする


openFrameworks 用の Xcode のプロジェクトのテンプレートをインストールします。

Xcode アプリを終了した状態で、
xcode templates/Project Templates にある openFrameworks フォルダを
~/Library/Application Support/Developer/Shared/Xcode/Project Templates
内に移動します。
コマンドラインから実行するなら、以下のようになります。

mv xcode?templates/Project?Templates/openFrameworks ~/Library/Application?Support/Developer/Shared/Xcode/Project?Templates

6. 新規 openFrameworks プロジェクトを作る


Xcode を起動して、
ファイル>新規プロジェクト>User Templates>openFrameworks
から「Mac OSX Empty Example」を選択します。

プロジェクト(例:hello1)の保存先は、
apps フォルダ内に新規フォルダ(例:myapps)を作り、その中に置きます。

プロジェクトができたら、とりあえずコンパイル・実行していみます。
「ビルドと実行」ボタンを押します。(Command + Enter)
アプリが起動し、グレーだけの何も無い画面が表示されれば成功です。

7. Mac OS X 10.4 非対応の場合


Xcode のインストール状態によっては、テンプレートからのビルドに失敗します。
「Base SDK Missing」が表示されていたり、
ビルド>ビルド結果
に「There is no SDK with the name or path」のエラーが出ていたら、
ベース SDK の指定が間違っています(対応していない)。



プロジェクト>プロジェクトを編集
を開いて、
すべての構成のベース SDK
で『Mac OS X 10.6』を選択し、もう一度、「ビルドと実行」ボタンを押します。



8. 「Hello, openFrameworks!」を作る


さて、ようやく「Hello, openFrameworks!」にとりかかります。
まず、testApp.h を開いて、1行書き加えます。

#ifndef _TEST_APP
#define _TEST_APP

#include "ofMain.h"

class testApp : public ofBaseApp{

public:
   void setup();
   void update();
   void draw();

   void keyPressed (int key);
   void keyReleased(int key);
   void mouseMoved(int x, int y );
   void mouseDragged(int x, int y, int button);
   void mousePressed(int x, int y, int button);
   void mouseReleased(int x, int y, int button);
   void windowResized(int w, int h);

   ofTrueTypeFont verdana; // この1行を追加する
};

#endif

public である必要ないけど、そうプログラミングの常識は気にしない。

次に、testApp.cpp を開いて、setup メソッドと draw メソッドを書き換えます。
各メソッドの意味は、ofBaseApp を参照してください。

void testApp::setup(){
   verdana.loadFont("verdana.ttf",8, false, true);
   verdana.setLineHeight(20.0f);
   ofBackground(255, 255, 255);
}
void testApp::draw(){
   ofSetColor(0x000000);
   verdana.drawString("Hello, openFrameworks!", 100, 100);
}

最後に、TrueType フォントのファイルをコピーします。

apps/examples/fontsExample/bin/data/verdana.ttf

apps/myapps/hello1/bin/data/verdana.ttf

再び「ビルドと実行」で実行して、以下が表示されれば成功です!



True Type フォントでなくて、ビットマップフォントを使う場合は以下。

   ofDrawBitmapString("Hello, openFrameworks!", 100, 100);

それにしても、ソースコードには ofSetColor() とか C++ っぽくない関数が並んでいます。
こういう手軽さが openFrameworks の作法なんだろうな。。。


Beyond Interaction ―メディアアートのためのopenFrameworksプログラミング入門
ビー・エヌ・エヌ新社
田所 淳

amazon.co.jpで買う
Amazonアソシエイト by Beyond Interaction ―メディアアートのためのopenFrameworksプログラミング入門 の詳しい情報を見る / ウェブリブログ商品ポータル


テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ
気持玉数 : 6
なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
openFrameworks で Hello, world! してみる (Mac OS X)  Kawanet Blog II/BIGLOBEウェブリブログ
文字サイズ:       閉じる