×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
今日はopenFrameworksをいじくってみよう。WiiRemoteはまったく出てこなかった!
例によって個人的な備忘録ですので・・・。
例によって個人的な備忘録ですので・・・。
まずはライブラリをインポートしてコンパイルを通すところから。
仕事でも使うようになったとはいえ、未だにVC++のソリューションおよびプロジェクトの仕組みがイマイチ分かってない。
とりあえず \apps\example\ に入ってる適当なサンプルプロジェクトを開いて、ビルドしてみる。
なんか警告がいっぱい出たけど、とりあえずコンパイルが通って何かしら表示された。
次に適当なサンプルプロジェクトの中身を作業用フォルダにコピーしてみよう。テストプログラムでは文字が表示されるのが一番わかり易いと思い、"fontsExample"というプロジェクトをコピー。
コピー先の作業用フォルダでソリューションを開いたけど、当然ながらライブラリへのリンクが切れた。プロジェクトのプロパティを修正しなおそうかと思ったけど、コンパイルオプションとかでもライブラリパスを指定してあり、修正はかなり面倒なので、ライブラリとの相対位置関係が変わらないような場所に作業用フォルダを移動した。
コピー先でもコンパイルが通ったので、チョコチョコいじくってみようかな。

とりあえず、openFrameworksの大まかな仕組みを、簡単に確認してみよう。
サンプルプロジェクトはこんな感じになってる。
main.cpp
ところでmain関数ではGLUTという、初めて聞く仕組みが使われている。ググッてみるとopenGLを使う際に環境による違いを吸収してくれる仕組み(Utility Toolkit)の名前だそうで。
ところで、少し脱線。main関数の
ofAppRunner(クラス名ではなくモジュール名)に含まれるofRunApp関数の中には以下のような記述があった。
じゃあ、atexit関数って何よ。恥ずかしながら、これはCの標準関数ですってよ。動作は名前の通り。
というわけで、どうやらプログラム終了時にはtestAppはちゃんとdeleteされているらしい、と。
とりあえずサンプルプログラムのフォントをIPAフォントに変更してみよう。と思ったら、oFはマルチバイト文字を表示出来ないみたいだ。で、ググッたら出てきたofTrueTypeFontWSクラスを使わせていただくことにした。
あれ?文字が化けてる?確認したら、ソースの文字コードがUTF-8になっていた(VS2008の標準?)。なので、UNICODEで保存してコンパイルし直したら、問題なく日本語が表示されました。

次はそろそろoFプロジェクトにWiiYourself!をインクルードしてみよう。
仕事でも使うようになったとはいえ、未だにVC++のソリューションおよびプロジェクトの仕組みがイマイチ分かってない。
とりあえず \apps\example\ に入ってる適当なサンプルプロジェクトを開いて、ビルドしてみる。
なんか警告がいっぱい出たけど、とりあえずコンパイルが通って何かしら表示された。
次に適当なサンプルプロジェクトの中身を作業用フォルダにコピーしてみよう。テストプログラムでは文字が表示されるのが一番わかり易いと思い、"fontsExample"というプロジェクトをコピー。
コピー先の作業用フォルダでソリューションを開いたけど、当然ながらライブラリへのリンクが切れた。プロジェクトのプロパティを修正しなおそうかと思ったけど、コンパイルオプションとかでもライブラリパスを指定してあり、修正はかなり面倒なので、ライブラリとの相対位置関係が変わらないような場所に作業用フォルダを移動した。
コピー先でもコンパイルが通ったので、チョコチョコいじくってみようかな。
とりあえず、openFrameworksの大まかな仕組みを、簡単に確認してみよう。
サンプルプロジェクトはこんな感じになってる。
main.cpp
#include "ofMain.h"
#include "testApp.h"
#include "ofAppGlutWindow.h"
int main( ){
ofAppGlutWindow window; // GLUTからopenGLのウインドウを作成
ofSetupOpenGL(&window, 800,700, OF_WINDOW);
ofRunApp( new testApp()); // testAppを起動
}
testApp.h
#ifndef _TEST_APP
#define _TEST_APP
#include "ofMain.h"
class testApp : public ofBaseApp
{
public:
void setup();
void update();
void draw();
void exit();
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();
void mouseReleased(int x, int y, int button);
void windowResized(int w, int h);
void audioReceived( float * input, int bufferSize, int nChannels );
void audioRequested( float * output, int bufferSize, int nChannels );
};
#endif
基本的にはofBaseAppクラスを継承してアプリケーションクラスを定義する。様々なイベント発生時に呼び出される関数はofBaseAppに用意されていて、testApp側ではヘッダファイルで宣言して、オーバーライドしてあげるだけでいい。簡単すぎて気味が悪いくらい。ところでmain関数ではGLUTという、初めて聞く仕組みが使われている。ググッてみるとopenGLを使う際に環境による違いを吸収してくれる仕組み(Utility Toolkit)の名前だそうで。
ところで、少し脱線。main関数の
ofRunApp( new testApp()); // testAppを起動ってところでメインの描画ループに入る事は明らかなのだけど、じゃあtestAppをdeleteしているのは誰?
ofAppRunner(クラス名ではなくモジュール名)に含まれるofRunApp関数の中には以下のような記述があった。
atexit(ofExitCallback);ofExitCallbackは同じくofAppRunnerで定義されている関数で、この関数の中でtestAppのデストラクタが呼び出されている。
じゃあ、atexit関数って何よ。恥ずかしながら、これはCの標準関数ですってよ。動作は名前の通り。
というわけで、どうやらプログラム終了時にはtestAppはちゃんとdeleteされているらしい、と。
とりあえずサンプルプログラムのフォントをIPAフォントに変更してみよう。と思ったら、oFはマルチバイト文字を表示出来ないみたいだ。で、ググッたら出てきたofTrueTypeFontWSクラスを使わせていただくことにした。
あれ?文字が化けてる?確認したら、ソースの文字コードがUTF-8になっていた(VS2008の標準?)。なので、UNICODEで保存してコンパイルし直したら、問題なく日本語が表示されました。
次はそろそろoFプロジェクトにWiiYourself!をインクルードしてみよう。
PR
この記事にコメントする
26歳のハローワールド
カレンダー
| 11 | 2025/12 | 01 |
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
最新記事
(05/23)
(05/11)
(05/09)
(05/08)
(05/08)
(03/07)
(02/25)
(02/07)
(02/07)
(01/28)
最新コメント
[11/27 gyzwviyehl]
[11/18 Tepexaxyonelo]
[09/12 gomFolley]
[08/16 CypeBachCoece]
[06/02 gb]
[03/06 kishima]
[01/18 KNDY]
[01/16 kage]
[12/23 KNDY]
[12/23 kage]
最新トラックバック
カテゴリー
アーカイブ
ブログ内検索
アクセス解析