kumaryu日記
2008-12-16 時間やばい
_ [OpenGL] どいつもこいつも
デスクトップマスコットがChrome430GTでやばい遅さだったのでRadeon買ってきた。4670が9500円程。やすいのう。
で速いことは速いんだが、描画がぶっこわれまくり。速いとかそういう問題でないよもう。
原因は法線をshort3つで渡してたこと。しかしそれで法線がおかしいならともかく、なんで頂点が壊れるんだろうか。
strideが26とかなってたのが悪い?せめて4バイトでアライメントとれよとか。
ともかくそれを直したら正しく描画できるようになった。描画読み出してレイヤードウィンドウにぶちこむのも速いし。よかった…のかな?Chromeでは遅いままな気がするけど。
でいろんな人に試してもらったらちゃんと描画できないというか、画面取り込みみたいになったって。
どうも非表示ウィンドウのフロントバッファをglReadPixelsしてたのが悪いらしい。なるほど確かにおかしくなるのもうなずける。
それが直ったら今度はGeForceで背景が透けないだと。なんでだろう。これはもう分からないのでGeForce買ってくるか。
_ デスクトップマスコット作り
設定用のツールを作ったんだがいろいろ不備ありすぎ。
Windowsで文字コードにひっじょうに悩まされる。
Windowsではrubyは普通にマルチバイト版API使うのでファイル名はShiftJIS(っぽい何か)。
MacではUTF-8。wxRubyはUnicodeモードでビルドしてるので、ファイル選択ダイアログなどで選択されるパス名はUTF-8。
面倒だが、内部コードはUTF-8、ファイルシステム関係のやりとりするときはWindowsの場合はcp932に変換する必要がある。
あとついでになるべくシステム標準のディレクトリ使いたいのでwin32/dirを使ったんだが、$KCODEをutf-8にした時だけなぜかutf-16で返してくるらしい。死ね。
しかもパス区切りが\になってるんだがMinGWのランタイムでは\をパス区切りとして認識してくれないのか、ファイルが開けん。
ほんっとうに文字コードとか面倒過ぎるな!Ruby1.9の文字コード対応ほしいなぁと本気で思ったよ。いまはまだ移行できないが。
あとなぜかかなりの頻度で落ちまくる。wxRubyが1.9.7だったので最新のにしてみたら多少良くなった。しかしまだ落ちる。
Marshal.dumpとかそのあたりかなぁ。marshal_dump/marshal_loadが悪いんだろうか。GC関連で変なバグあったしなぁ。1.8でも直ってるかもしれないけど。
_dump/_loadにしたほうが安定するだろうか。試してみるか。
あと描画と機能の追加をやりたいんだけど非常に時間がまずい。しかしもう削るような所もないので、やれるところまでやるしかないんだけどな。