Dxライブラリ3Dのこと。
こんなのが始まっていたのね。
http://fatalita.sakura.ne.jp/3DLib/
もう、この手のライブラリは触らないかもしれないけれど。。。。。
・・・
・・
・
今日は、ずっとほっぽいていたデバイスロスト対応を。
ここらへんは本当にOptionalな感じがするけれど、あるとちょっとは「おおっ」ってなってくれるかな?
同人だと、
1.ちゃんとやっている
2.ロストした瞬間に落ちるようにする。
3.なにそれ?(真っ黒になる)
確認しているのは上記の三つの対応があると。
別に2でもぶっちゃけいい気はするけど。。。(実際そうしていたわけだし。)
XNAとかだと、2.0あたりから勝手にここら辺をやってくれているので助かったのですが。
・・・
・・
・
時間軸は前後するのですが、やったつもりになっていたカリングと、Zソートの部分をこまごまと修正。
・更新スレッド部でやっていると思ったら、同期時にやっていてまるで意味がなかったのを修正
・・修正したと思ったら、更新用の描画コマンドと、描画用の描画コマンドがごっちゃになっていて、
画面がバチバチ。 ちゃんと修正しました。
・描画コマンドを全てstd::listで格納していたのを、ソートを速くするために、std::vectorに。
・描画コマンドを更新用のstd::vectorから描画用に移動させるとき、普通にコピーをしていたのだけれど、
普通にvectorごと入れ替え(配列のindexをupdate:0 draw:1 を update:1 draw:0にするということ)た
ほうがずっとよいことに気づき、修正。 これでも、40FPSが43FPSになったくらい。
・・・1.7ms位か。地味に大きいな。
どうでもいいけど、バリア同期させるのに、mutexを利用するのはXPだと重いという話を聞いたのですが。。。
まぁいいか。問題になるほどまだ重くないし。
080623 追記
Dx3Dは別に、DxLibの人ではないのですね。いやはや。
080814 追記
バリア同期はMutexでなくて、CriticalSectionか、Interlockを使ったほうがいいですね。何書いてるんだろ。
