落書き以上、技術メモ以下

気になったことをまとめておきます。

openFrameworksのmain関数

openFrameworksのmain関数では主に2つの処理を行う。

  • ofSetupOpenGL:アプリケーションのウィンドウ生成
  • ofRunApp:描画を行う無限ループの開始

ofSetupOpenGLではウィンドウサイズを設定し,ウィンドウの生成を行う。

ofRunAppは引数としてofBaseAppのポインタを渡して,描画アプリケーションを起動する。基本的にはofBaseAppを継承しているtestAppクラスのインスタンスを引数として渡す。

testAppクラスにはdraw()やupdate()など,アプリケーションの根幹となるようなメソッドを含んでいる。そのため,openFrameworksのアプリケーション作成においてはtestAppクラスのコーディングがアプリケーション作成のメインとなる。

openFrameworksのフォルダ構成

openFrameworksのフォルダ構成についてメモしておく。

openFrameworksのフォルダには以下の様なフォルダが含まれている。

  • addons
  • apps
  • examples
  • libs
  • scripst

"addons"は断片的な機能を持ったアプリケーションである。Kinectや"OpenCV"を利用したアプリケーションなどがある。

"apps"は実際にアプリケーションを作成する場所となる。

"examples"は様々なサンプルプログラムが存在する。サンプルプログラムを書き換えて実行したい場合は,appsフォルダにコピーして行うほうが良いだろう。

"libs"はopenFrameworksが使用する全てのライブラリが含まれている。

 

openFrameworksではフォルダ構成に対して便宜的な名前を付けている。

まず,openFrameworksフォルダ直下を"of ROOT FOLDER"と呼ぶ。

そして,appsフォルダ内が"WORKSPACE"となる。

appsフォルダ内にはWORKSPACEフォルダが並び,そのWORKSPACEフォルダ内が"PROJECTS"フォルダがある。

"PROJECTS"フォルダ内にはさらに各プロジェクトのフォルダが並ぶことになる。

 

わざわざフォルダ構成に名前を付けているのは,openFrameworksで使用するライブラリーがプログラム内で相対参照されていることが関わっているのだろう。

 

新しくアプリケーションを作成する際には,examplesフォルダなどからプロジェクトを任意のPROJECTSフォルダにコピーして作成することになる。変なところにコピーするとlibsフォルダが参照できなくなり,動作しないことになる。

 

最後にフォルダ構成を示した。

 

of ROOT FOLDER

    - WORKSPACE

        - PROJECTS

            - a project

openFrameworksはじめました

数年前にちょっと手をつけたくらいだったopenFrameworksを改めて触って見ました。

とりあえず,getting startとして記録しておきます。

 

openFrameworksとは

http://openframeworks.cc/がopenFrameworksのサイトになっています。

詳しくはこちらを見ていただければと思います。

openFrameworksは一言で言えばアーティスティックな作品をPCで簡単にプログラム出来るように,様々なライブラリを簡単に記述できるように開発されたツールキットのようなもの。

例えば,OpenGLで円を描画しようと思ったらいろいろな処理を記述する必要があります。ところが,openFrameworksを使用すれば1行で円を描画することもできます。

以下の動画ではopenFrameworksを使った作品なんかが見れます。

 

 

サンプルプログラムを実行してみる

まずはhttp://www.openframeworks.cc/download/から自分の開発環境にあったopenFrameworksをダウンロードしてきます。

私はMacを使用しているので,以下からはMacを使用した場合の説明となります。

ダウンロードしたファイルは任意の場所に解凍しておきます。

解凍したら,examples/graphics/graphicsExampleのgraphicsExample.xcodeprojを開きます。

openFrameworksをMacで開発する場合はXcodeを使用するのが普通です。

Xcodeで開かれたら左上のRunボタンを押しましょう。

そうするとサンプルが動くはずです。

 

…私は動きませんでした。

1つ目の原因は"Base SDK"のバージョンが10.6になっていないことが原因でした。

  1. 左の方からgraphicExampleを選択
  2. 中央に表示された画面からBuild Settingsを選択
  3. AllとCombinedを選択
  4. BaseSDKを10.6に変更

これで動くかなと思ったら動かなかったので,真面目にエラーの原因を読みました。

どうやらエラーの原因は,使用しているヘッダファイルが見つからないからであるようだ。

そんで,warningには以下の様な記述。

warning: The specified SDK “Current OS X” does not appear to have all of the necessary headers installed.  Update your project to use a built-in SDK (“Latest OS X” is recommended) or install the system headers (included with the “Command Line Tools” package) from the “Downloads” pane in the Xcode preferences. 

えーっと,preferencesを開いてDownloadsからsystem  headersをインストールしろって?

ところがDownloadsを見てみてもCommand Line Toolsなんてものはどこにもない。

しょうがないのでググったらこちらhttp://hiroki.jp/mavericks-command-line-developer-toolsにインストールの方法が載ってました。

やはりMarvericksにしていたのが問題だったようだ。

書いてあるようにターミナルを開いて

xcode-select --install 

 を実行するとインストール出来ました。

再度Xcodeに戻りRunボタンを押すと,サンプルを実行することができました。

はてなブログでSyntaxHighliterでコードを表示

このサイトを見てSyntaxHighliterでコードを表示できるようにした。 

http://omoshiro.hatenablog.com/entry/20120627/1340797584

C言語を表示したらこんな感じ。

    
#include  <stdio.h>    
    
int main(void)
{
    printf("hello\n");
    
    return 0;
}

詳しいやり方はまた今度書きたい。

はじめました

とりあえず始めてみました。

メモ帳的に使っていきたいです。