OSDN Git Service

テクスチャ クラスの Dispose 漏れを修正。
authorくまかみ工房 <kumakamikoubou@gmail.com>
Tue, 20 Sep 2016 03:58:10 +0000 (12:58 +0900)
committerくまかみ工房 <kumakamikoubou@gmail.com>
Tue, 20 Sep 2016 03:58:10 +0000 (12:58 +0900)
FDK24/メディア/テクスチャ.cs

index 74e4807..e5f0abd 100644 (file)
@@ -24,7 +24,9 @@ namespace FDK.メディア
                protected override void Onデバイス依存リソースの作成( デバイスリソース dr )
                {
                        var d3dDevice = (SharpDX.Direct3D11.Device) null;
+
                        using( var d3dLock = new FDK.同期.AutoD3DDeviceLock( dr.DXGIDeviceManager, out d3dDevice ) )
+                       using( d3dDevice )
                        {
                                #region " 定数バッファ "
                                //----------------
@@ -58,9 +60,9 @@ namespace FDK.メディア
                {
                        var d3dDevice = (SharpDX.Direct3D11.Device) null;
                        using( var d3dLock = new FDK.同期.AutoD3DDeviceLock( dr.DXGIDeviceManager, out d3dDevice ) )
+                       using( d3dDevice )
+                       using( var d3dContext = d3dDevice.ImmediateContext )
                        {
-                               var d3dContext = d3dDevice.ImmediateContext;
-
                                #region " 定数バッファを更新する。"
                                //----------------
                                {
@@ -88,7 +90,7 @@ namespace FDK.メディア
                                        this.定数バッファの転送元データ.dummy2 = 0f;
                                        this.定数バッファの転送元データ.dummy3 = 0f;
 
-                                       // 定数バッファへの書き込み
+                                       // 定数バッファへ書き込む。
                                        var dataBox = d3dContext.MapSubresource(
                                                resourceRef: this.ConstantBuffer,
                                                subresource: 0,
@@ -165,14 +167,15 @@ namespace FDK.メディア
                {
                        var d3dDevice = (SharpDX.Direct3D11.Device) null;
                        using( var d3dLock = new FDK.同期.AutoD3DDeviceLock( dr.DXGIDeviceManager, out d3dDevice ) )
+                       using( d3dDevice )
                        {
                                #region " 頂点シェーダ "
                                //----------------
                                var シェーダコンパイルのオプション =
-                               SharpDX.D3DCompiler.ShaderFlags.Debug |
-                               SharpDX.D3DCompiler.ShaderFlags.SkipOptimization |
-                               SharpDX.D3DCompiler.ShaderFlags.EnableStrictness |
-                               SharpDX.D3DCompiler.ShaderFlags.PackMatrixColumnMajor;
+                                       SharpDX.D3DCompiler.ShaderFlags.Debug |
+                                       SharpDX.D3DCompiler.ShaderFlags.SkipOptimization |
+                                       SharpDX.D3DCompiler.ShaderFlags.EnableStrictness |
+                                       SharpDX.D3DCompiler.ShaderFlags.PackMatrixColumnMajor;
 
                                // シェーダコードをコンパイルする。
                                using( var code = SharpDX.D3DCompiler.ShaderBytecode.Compile(