OpenGL + どちらの図書館がいいのか?(誤訳)
実験をするにはプログラミングができないと始まらない。
(例外的に、アウトソーシングという選択肢はある、が。)
画像を表示したり、キーの押下を検出して時間を記録したり、
基本的にやりたいことはたったそれだけなのだけれど、
Macでどうやったらできるのか、皆目見当が付かない。
Xcodeを使うといいらしいが、それで言語が決まるわけでなし。
いろいろ調べていたのだけれどなかなか埒があかない。
せっかくやる気になっているのにこのハードルの高さとは!
と思って、行き着いたのはすごく丁寧に解説してあって
しかもどこかで見たことのある親切なページ、
MacでOpenGLのプログラムを始める方法。
よしこの通りにやってみようと思ったのだけれど、
その前に調べてた他の方法と微妙に違うのが気になった。
OpenGLとGLUTを組み合わせるということなのだけれど、
別のところで紹介されていたのは、OpenGLとSDLの組み合わせ。
GLUTはOpenGL Utility Toolkitの略で、
SDLはSimple DirectMedia Layerの略で、
できることも似てるし、なにが違うのかよく分からない。
OpenGL自体は計算しか行わないので、計算結果をディスプレイへ
表示するためには何か他のライブラリを使って行う必要がある。
(出典)
確かにやりたいことはゲーム作りと同じなんだよね。
でも、この説明だとどっちがいいのかやっぱり分からない。
別の意見もあった。(目的が違うとは思う。)
(またSDLだよ! より)
知らない単語が出てきた。コールバック関数ってなに?
ともかく、GLUTはコールバック関数を用い、SDLはループ風な記述らしい。
しかも前者のコールバックは、ポーリング方式というのを使うらしい。
- ポーリング : 一定の間隔で着信側から発信側に発信要求がないか
問い合わせを行い、発信要求がある場合に回線接続を行うもの。
うーん。コールバックを使う理由は、
「ライブラリとアプリケーションを区別する」ため。
概念図を見ると、分かったような気がした。
オブジェクト指向っていうことなのか?(ちがうかも。)
でもこれを自分で実装できる感じがしない。
もちろん、いろんなところのサンプルとかを
改変してやりたいことを実現するしかない。
やりたいのは、いつキーが押されたか
判定したいだけなんだけど、コールバックと
ループで書くのってやってることが違うようには
あんまり思えないんだけど、劇的に違ったり
するんだろうか。時間精度が違うとか?
で、結局、実際にやってみないとどっちが
使い勝手がいいのかわからないってこと。
まず動くものを作れにゃなんにもならぬ。
ああ苦しい。出来るか不安だ。でも楽しい。