2008-05-01から1ヶ月間の記事一覧

ioctlの引数

デバッグ情報を付けて再度テストしたところ、ioctl()の引数に問題があることが分かりました。 // 注: バグありコード int axes() const { int value; if (::ioctl(fd_, JSIOCGAXES, &value) != -1) return value; else return 0; } ioctl()はエラーなら-1を…

Linuxのジョイスティック

Linuxのジョイスティック入力(/dev/input/js0)に対応しました。 差分 実装は、デバイスをノンブロッキングモードでopen()して、ひたすらread()しているだけです。 うちの古いVMwareだとVista上のVMでUSBを認識しないので、UbuntuのLiveCDを使ってテストしま…

コルーチンのスタック

半日ほどデバッガと格闘した後、コルーチンに割り当てたスタックが小さすぎることに気が付きました。 スタックサイズの既定値を8Kから64Kに変えてみたところ、クラッシュが発生しなくなりました。 差分 昨日クラッシュしていた箇所はどちらもI/O絡みで、バッ…

action_game on Linux

昨日の問題はZ値を0に固定したら直りました。 Zバッファの設定を間違えているのだと思いますが、実質使ってなかったので原因究明は後回しです。 その後、Windows依存コードを取り除いて、Linuxで起動するところまで出来ました。 gtk_action_game/ VMware上で…

OpenGL/PulseAudio組み込み

action_game.exeにPulseAudioとOpenGLを組み込んで、コンパイルできるところまできました。 gtk_action_game/ 一応実行できるものの、なぜか何も表示されません。 描画用の関数を直接呼ぶとちゃんと表示されるんで、初期化とかの問題ではないと思うんですが…

pulse_audio_sink

PulseAudioで再生するpulse_audio_sinkを作りました。 pulse_audio.cpp PulseAudioのヘッダはUNIX系のヘッダに依存しているので、VC++等ではコンパイルできません。 MinGWなら辛うじて動きます。 このため、コンパイラ毎にビルドする/しないをカスタマイズす…

PulseAudio

どっから手を付けてよいやら状態なので、試しにaction_game.exeをGTK+&OpenGLに移植してみることにしました。 で、Hamigaki.Audioに非Windows用のDirectSound代替物がなくていきなり詰まりました。 Linuxのサウンドドライバはいろんなものが乱立していて良く…