Managed DirectX病
Dispose忘れて落ちるというバグを出してしまいました。これだからManagedは……。まぁレンダリング毎にLine(Unmanagedで言えばD3DXLine)を作っていたのが原因なので非がこちらにないとも言い切れないわけですが。あとバグの原因が完全にそれだと断定できるわけでもないし。
というわけで、Managed DirectXをやっていて困るのがこのDisposeです。もともとデストラクタが呼び出されるタイミングが自分で決められない仕組みなので、リソースの開放は明示的に行う必要があります。C++ならCComPtrを使っていればよかったんですが、そうもいかないわけです。開放にはDisposeというメソッドを呼びます。テクスチャやメッシュを含むクラスを自分で作った場合には、IDisposableを継承して、Disposeを実装します。面倒です、ハイ。usingっていう仕組みもあるんですが、それもなんとも言えないです。というかusingっていうキーワードに3つも意味もあるのはどうかと。以下に列挙。