openFrameworksを触ってみた

夏休みになりました.
今年の夏休みは勉強会とか色々行こうと思ってるんだけど,その中の一つにクリエイティブ・コーディング・スクールというものがある.
ざっくり言うと,札幌市立大学の札幌サテライトキャンパスでクリエイティブ・コーディングを体験するというもの.
クリエイティブ・コーディングといっても,openFrameworksだけではなくて,ProcessingやWeb Audio APIとかもやる.行かないけど.
あと,それとは別に諸事情でC++を使うことになって,そのためにC++を学ぶ必要があった.

まあ,そんなわけでopenFrameworksを使うことになった.
まず最初は環境構築.
この前Visual Studio 2015がDream Sparkに入ったので,(特に意味は無いが)Enterprise版を入れた.
次にopenFrameworksから適当にDownloadしてExamplesを動かそうとした.
しかし,適当にダウンロードしたやつはVisual Studio 2012用で,動かなかった.
仕方ないからGitHubから最新版を落とし,「…openFrameworks-masterscriptsvstemplateemptyExample.sln」を使うことで無事に動いた.
ここで,マイドキュメントのVisual Studio 2015/Projectsにさっきのtemplateをコピペして起動した.
何故か動かない.どうも相対パスで指定されているからダメっぽい..slnと.vcxprojの中の相対パスを絶対パスに書きなおして起動したら動いた.
 
ようやくコードを書くことができるようになった.
この前夢で見たイメージがまだ頭に残っていたので,それを描いてみる.
コードを書いていくと,自分で追加したファイル(.h,.cpp)が認識されていないことがわかった.
パスを通したり色々したけど,分からなくて,あまり綺麗ではないけど,.vcxprojの中身を少し追加した.
色々試行錯誤してできたのがこれ.
コードはこちら
※パスとか.vcxprojのパス部分とか書き換えないと動かないと思う.あとVS2015で.
 
result
 
無事に動かすことができたし,これをblogに載せようと思った.
で,載せるためにはどうするか.jsに変換するのもすっごい効率悪いし,gif形式で保存することにした.
gif形式で保存するにはofxGifEncoderを使えば良いらしい.
パスを通して使ってみるが,ofxGifEncoder.cppのLine51とLine56でエラーが出ている.
img.wとimg.hはprotectedだからダメー,という内容だった.それぞれgetWidth()とgetHeight()で書きなおした.
もう一つ,img.bppはprotectedだからダメーと言われた.img.bppはimg.getPixelsRef().getBitsPerPixel()に書きなおした.
(合ってるかどうかは知らない.動いたからとりあえずこれでいいや.)
その後ofxGifEncoderについてきたexampleを元にしてgifに保存した.
保存できるように改良したやつのコードがこちら
※パスとか.vcxprojのパス部分とか書き換えないと動かないと思う.あとVS2015で.