DXGIとかDirect2D/3Dを抽象化するクラスを作っている。APIを隠ぺいするほどでもない中途半端な抽象化になりそうだが、階層関係にあるオブジェクトはそうなるように構成をしたり、RAIIを意識して作るとか、スマポでラッピングするとか。いまいちわからないのがDXGIの各インターフェースとDirect2D/3Dとの関係である。いやDXGIの各インターフェースの関係もよくわからない部分があるのだが。DXGIの今の頭の中のイメージを絵にするとこんな感じかな。

IDXGIAdapterとIDXGIOuputはわかるのだが、その他のリソース系の各インターフェース間の関係がよくわからないのである。Direct2D/3Dのインターフェースを含め一度依存関係を図にしてみたいと思っているのだが、そうするためにはもっと理解しないといけないね。。