2012年10月20日土曜日

Direct2Dのリソースの解放忘れをチェックする

Direct2Dでは標準ではリソースの解放忘れをチェックして警告してくれるようなデバッグモードは実装されていないらしいです。それはCOMっちゃうな~;と思った人はここからDirect2D用のデバッグレイヤーをダウンロードして実行しましょう。
この時 d2d1debug.dllがインストールされるらしいのですが ライブラリファイルの追加等のVC++の設定作業は不要です。Direct2Dが内部からd2d1debug.dllを呼べるみたいです。

後は、我々はただ単にD2D1CreateFactory()を呼ぶ時にデバッグオプションを指定すればいいだけです。
詳しくは以下をどうぞ。
Direct2Dデバッグレイヤーの概要

リソースの解放をチェックする場合の注意点としては、
1・あらゆるリソースの中でファクトリ(ID2D1Factory)を最後にRelease()する。
2・ファクトリの解放自体はチェックされない。

という事です。
ファクトリによってその他のリソースをチェックしている事が伺えます。

ファクトリをリリースした時点で未解放のリソースをがあればデバッグウインドウにメッセージが表示されます。

0 件のコメント: