openFrameworks導入
はじめに
C++でちょっとした図形を書きながら処理を作りたい案件があり、openFrameworksを導入してみた。
あわよくばiOSとかHTML5とかでも動いたらいいなぁとか思って、いろいろ調べてSDLやcocos2d-xも候補に挙がったが、いや、一歩目はもっとさっくりとにかく素のC++で、と思い直し、openFrameworksにたどり着きました。メディアアーティスト感あるし。
環境構築
https://qiita.com/Gaccho/items/f193d1c350b45b93f663
これに従えば、ほぼその通り導入できた。
異なった点:
新規プロジェクトを作る際に、プロジェクトのテンプレート選択で、「インストール済み>Visual C++>テスト」の下にopenFrameworksが入ってた。
ビルド時のワーニング
コンパイル時にコードページのワーニングC4819が大量に出る。
なんか昔からこういうのは尽きないよね…。
回避方法は… ↓警告無視オプションを設定するって、なんか他にないの??
「プロジェクトのプロパティ>構成プロパティ>C/C++>詳細設定>指定の警告を無効にする」で4819と指定する。
ちょっと悪あがきしてみる。
ofVec2f.hとofVec3f.hは、実際にどこかにasciiじゃない文字コードが入ってるみたいで、VSCodeで開くとWindows1252と認識されたので、BOM付UTF-8にしたらワーニング取れた。
freetype.hはVSCodeでもUTF-8だし、ワーニング出ている行も空行(というか「*」しかない行)だったりしてよくわからないけど、同じくBOM付UTF-8にしたらワーニング取れた・・。うーむスペースとか改行とか目視不能なところになにか紛れているのだろうか。バイナリエディタで見るとかまではしません…。
あんまりライブラリのソースを変更するのは嫌だけど今回はこれでいいや。
直近で必要な処理を調査
とりあえずラインとか矩形とかの描画と、テキスト描画、キーボード・マウス入力当たりがあればよい。
簡単な図形描画
太線はイメージが違う・・まあそうなる理由はわかる。
なんで円が多角形なんだろうか。
直線がぼやけて見えるのはよくある0.5ピクセル問題?
文字
ofDrawBitmapStringでASCII文字は出せる。いったんこれで充分。
ofDrawBitmapString("scale:" + std::to_string(r), ofsx, ofsy);
「std::to_string」というものを知る・・。
C++で文字列を扱う最近のトレンドは何なんだろうか。
(最近のC++の再学習に関してはまた別途やる必要がある)
printfはコンソールに出る。
TTFのフォントを使うモジュールもあるらしいが今は不要。
入力
自動生成されたofAppに、すでに、
key~、Mouse~という、入力イベントを受け取る関数ができている。
void ofApp::keyPressed(int key) { printf("press %d\n", key); }
keyはASCIIコードが入ってくるとのこと。
ちなみに、Enterは13(いわゆるCR)、Shiftは1と3680が来た。まあいいやその辺は使うまい。