OSDN Git Service

文字列画像 のメモリリークを修正。
authorくまかみ工房 <kumakamikoubou@gmail.com>
Tue, 20 Sep 2016 08:15:58 +0000 (17:15 +0900)
committerくまかみ工房 <kumakamikoubou@gmail.com>
Tue, 20 Sep 2016 08:15:58 +0000 (17:15 +0900)
FDK24/メディア/文字列画像.cs

index 7a4e1d6..df0015d 100644 (file)
@@ -48,9 +48,9 @@ namespace FDK.メディア
                {
                        FDK.Utilities.解放する( ref this.黒ブラシ );
                        FDK.Utilities.解放する( ref this.白ブラシ );
+                       FDK.Utilities.解放する( ref this.ビットマップレンダーターゲット );
                        FDK.Utilities.解放する( ref this.テキストレイアウト );
                        FDK.Utilities.解放する( ref this.テキストフォーマット );
-                       FDK.Utilities.解放する( ref this.ビットマップレンダーターゲット );
 
                        //FDK.Log.Info( $"{FDK.Utilities.現在のメソッド名}: 文字列ビットマップを解放しました。" );
                }
@@ -98,7 +98,6 @@ namespace FDK.メディア
                                using( var bmp = this.ビットマップレンダーターゲット.Bitmap )
                                {
                                        dr.D2DContext1.DrawBitmap(
-#warning Dispose 漏れ?(注意)
                                                bitmap: bmp,
                                                destinationRectangle: null,
                                                opacity: 不透明度0to1,
@@ -157,8 +156,12 @@ namespace FDK.メディア
                        }
 
                        // ビットマップレンダーターゲットを生成する。
+                       using( var target = dr.D2DContext1.Target )
+                       {
+                               // D2DContext1.Target が設定済みであること。さもなきゃ例外も出さずに落ちる。
+                               Debug.Assert( null != target );
+                       }
                        this.ビットマップレンダーターゲット?.Dispose();
-                       Debug.Assert( null != dr.D2DContext1.Target );  // レンダーターゲットが設定済みであること。でなきゃ例外も出すことなく落ちる。
                        this.ビットマップレンダーターゲット = new SharpDX.Direct2D1.BitmapRenderTarget(
                                dr.D2DContext1,
                                SharpDX.Direct2D1.CompatibleRenderTargetOptions.None,