2013年7月25日木曜日

OpenALについて-その2-

どもども、「知ってる人は知っている。知らない人はまぁ覚えなくてもいいんじゃね?」
wakaでございます。

少し時間が空いてしまいましたが、前回の記事に引き続きOpenALについて書いていきたいと思います。
・・・っと言ってもまだ自分自身がOpenALのリファレンスをしっかり理解しきれていなので読まれる皆様のお役に立つかはわかりませんが・・・

では、今回はOpenALのデータ型の紹介と関数について触れていきたいと思います。

OpenALライブラリのプリミティブ(スカラ)データ型はシームレスな統合が出来るようにOpenGLのデータ型を模しているそうです。保証最小サイズはOpenGLデータ型のために明記されているが、実際はC言語のどの型が選ばれるかは実装次第に任されているらしいです・・・
↑表ツール的なものがなかったので画像で勘弁してください
これがOpenALライブラリのデータ型になります。参考にしてください。



次は、関数について書いていきたいと思います。


alcOpenDevice()は英語を少しでも読める方なら気づかれるを思いますが、デバイスをオープンするための関数になります。
devicenameのところにオープンしたいデバイスの指定をします。
しかし、これを試したところalcOpenDevice(NULL);こんな感じで値にNULLを入れると適当なデバイスをオープンしてくれるみたいです。
ちなみに、NULLが返り値で返ってくると「エラー」です。

ALCdevice *device;
device = alcOpenDevice(NULL); 
↑こんな感じにソースコードの中に書いてみました。




alcCreateContext();も上記を同じように読んだままの意味の関数になります。
deviceには、上記(alcOpenDevice())で開いたデバイスを指定する。
attrlistには、いろいろを指定をすることができる。
しかし、これもNULLを入れておけば問題なく動いてくれた
ちなみに、返り値がNULLだと「エラー」。

ALCcontext *context;
context=alcCreateContext(device,NULL);
↑ソースコードにはこう書いてみました。




alcMakeContextCurrent();の関数は、コンテキストをカレントするためのものである。
コンテキストを使用するようにするもの、返り値がALC_TRUEなら「成功」、ALC_FALSEなら「失敗」となる。

alcMakeContextCurrent(context);
↑ソースコードの中にはこう書いてみました。


ちなみに、ここまではALCによるOpenALの準備する部分なので、実はまだOpenAL本体のいじっていません。
しかし、この準備をすることによってOpenALを使用することができるようになります。


それではOpenAL本体の話に・・・といきたいところですが、これ以上書いて行くと長くなってしまうので今回はこの辺にしたいと思います。

次回はOpenALライブラリの関数に関することを書いていきたいと思います。
それではまたいつの日か~~~

終わりに・・・
・・・もし次回までにopenALのリファレンスの理解ができないないようなことがあれば全く関係のない違う記事を書いているかも・・・ボソ

1 件のコメント:

  1. I loved your blog.
    Regards: If you have any problems regarding Senior Support, I can solve the issue. For more details, visit: https://4thquarterrealtygroup.org

    返信削除