セカイノカタチ

世界のカタチを探求するブログ。関数型言語に興味があり、HaskellやScalaを勉強中。最近はカメラの話題も多め

マーブルワーズ

7. Processing-OpenGLのdll/soを読み込む

さらに、もう一仕事残っています。OpenGLはネイティブライブラリに使用しますので、Processing内部でjnaを使っています。
そのため、ライブラリを正常に読み込める必要があります。
WindowsLinuxで、ライブラリ読み込みのメカニズムも違うので、その点も注意が必要です。

Windowsの場合、対象のdllが存在する場所にPATHが通っている必要があります。これは、Windowsがdllを探すのに[Windowsのシステムディレクトリ]->[PATHの通ったディレクトリ]->[カレントディレクトリ]と探していくことに由来するのだと思います。*1

Linuxの場合、pathをたどるようなことはしないので、LD_LIBLARY_PATHを設定する必要があるのですが、これもいまいち認識しなかったので、[Run as]->[Run Configurations...]で、vmオプションを設定します。[Argments]->[VM argments]に、「-Djava.library.path=/xxxx/processing-1.5.1/modes/java/libraries/opengl/library/linux64」って感じですね。最後の「linux64」は、32bit版の場合は「linux32」になると思います。

これで、実行する準備ができました。先ほどの変な立方体がぐるぐるするデモを書き換えます。

    size(400,400, OPENGL)

これだけです。これで、描画にOpenGLが使われます。

ちょっと駆け足でしたが、これでScalaでProcessingでOpenGLが使えるようになるはずです。テクスチャとかいろいろできるっぽいので、試してみるとよいかもです。

*1:順番とか適当です。正確に知りたい人はググってください