HYBRID W-ZERO3予約しちまった!
ななまんえんですってよ。いままでで一番高い電話だ。
これでBluetoothの調子が悪かった京ぽん2ともやっとおさらばできる。 ついでにPHSのパケット通信使い放題だ。3G回線?そんな高い物つかうわけない。
本体は7万と高いんだが、一括で買ったので2年間は月額料金が20円になるみたい。 それ以降も月1450円なので今までのネット25より安い。
あとはいつまでWillcomのサービスが続くかだけど、さすがに2年くらいは続くだろー。
変な例外が出る件はなんとか解決。
現在のコンテキストをNULLに設定したあとでglGetErrorしててINVALID_OPERATIONが出ちゃって、その例外のto_sでレンダラー情報を取得するもののNULLが返ってきててそれを文字列としてフォーマットしようとしたのが原因。
いろいろと上手くない作りになってるな。
コンテキストがNULLな場合はあちこちでglGetErrorすら呼ばないようにするのが正しそうだけど面倒だ。
とりあえずコンテキストをNULLにした直後のglGetErrorは回避しとくことにした。したけどまだ上手く動かないな。
バッファオブジェクト作った時にmemalignが無いmingwでは__mingw_aligned_mallocを使ってたんだけどなんかちゃんとメモリ確保できてないみたい。今のところalignedの必要はないから普通にxmalloc使うか。
そこはとおしたんだけど、今度はglTexSubImage2Dの中で落ちやがる。さすがにこれはもうだめか。デバッガで見てもバックトレースとれないし、それっぽい場所にブレークポイント張るのもできないや。
Mesaのopengl32.dll使ったらちゃんと動くな。GDI GenericではどうせGLSLもアセンブリシェーダも動かないんだから気にしなくていいじゃんとも言えるがどうも気になってしまうぜ。シェーダの手前まではエラー無く動いてほしいし、エラー出るにしてもSEGVじゃなくてOpenGL拡張が無いよ例外を投げて欲しい。
調べてたら、VBOが使えない時にメインメモリでやりくりするようにしてるんだけど、メインメモリにフォールバックしたコードが間違ってた。ああ、うん。VBOくらい必須にしろよってな…。
とりあえずシェーダ使わない部分はテスト通るようになったな。良かった良かった。
しかしシェーダ使えないとこのマシンで続けるのはけっこうきつい。Mesaでソフトウェアレンダリングするにしてもフラグメントシェーダはやばいくらい遅いもんなぁ。
そういやWindowsでGMA500でもDirectX9はハードウェアアクセラレーションある程度でも効くんだろうか。効くならGLES2.0に対応してANGLE Projectでも使った方がいいかもしれん。ソフトウェアレンダリングだったらいらね。