2008/10/06(Mon)GSDK という名前にした

はてブ数 2008/10/06 17:43 計算機な日記::ソフト作り つーさ

いわゆるIDisposableをつけなきゃいけないクラスについてabstractな基底を作って、メモリ回収はGCに任せようとか思ってたが。Sceneクラス破棄してスコープアウトしてもScene直下で持ってるリソースのデストラクタが呼ばれず、先にDirect3DとかDirectSoundのDisposeが呼ばれて、ストリーム再生中のバッファでAccessViolationがでる。確かにGCがオブジェクトのデストラクタを呼ぶタイミングは予想できないのに、実験的にはちゃんと呼んでくれてたという意味不明な理由で、あほな実装に走った。今振り返ってみれば、どうしてこのような実装にしたのかわからない。これは由々しき事態だ。結局Paneliaみたいに、親子を考えて寿命管理しないといけない。C#になってもリソースの寿命管理からは逃れられないのか。GSDKで文字を書くとPaneliaよりも極端にFPSが落ちる謎の現象も確認。同じ文字列を描いてるのに、ぱねりあでは700FPS、GSDKでは150FPSしかでない。原因がさっぱりわからなくて困っている。PresentParametersやRenderStateはまったく同じ設定のハズなのに、いったいどこが違うんだ?うーーん……。昨日やっと、ひととおり書き終わったつもりになって、初めてビルドして動かしてみたら、でるわでるわ。バグのやま。まぁ当たり前なんだけど。上に書いたみたいな仕様バグも出てるし、どうしようかな。どんどん完成が遅れていい加減嫌になってくるなぁ。当初5月に完成する予定じゃなかったっけ。