OSDN Git Service

FDK.メディア.グラフィックデバイス クラスに、FDK.UI.Framework を内包。
authorくまかみ工房 <kumakamikoubou@gmail.com>
Sat, 17 Jun 2017 15:58:46 +0000 (00:58 +0900)
committerくまかみ工房 <kumakamikoubou@gmail.com>
Sat, 17 Jun 2017 16:00:47 +0000 (01:00 +0900)
FDK.メディア.グラフィックデバイス.UIFramework の Render() を忘れずに。

FDK/ApplicationForm.cs
FDK/UI/Framework.cs
FDK/メディア/グラフィックデバイス.cs
StrokeStyleT/App.cs

index 0dd75e0..24413df 100644 (file)
@@ -104,10 +104,20 @@ namespace FDK
 
                                var gd = ApplicationForm.グラフィックデバイス;
 
-                               // 全面を黒で塗りつぶすだけのサンプル。
-                               gd.D2DDeviceContext.BeginDraw();
-                               gd.D2DDeviceContext.Clear( Color4.Black );
-                               gd.D2DDeviceContext.EndDraw();
+                               gd.D3DDeviceを取得する( ( d3dDevice ) => {
+
+                                       // アニメーションを進行する。
+                                       gd.Animation.進行する();
+
+                                       // 現在のUIツリーを描画する。
+                                       gd.UIFramework.Render( gd );
+
+                                       // 全面を黒で塗りつぶすだけのサンプル。
+                                       gd.D2DDeviceContext.BeginDraw();
+                                       gd.D2DDeviceContext.Clear( Color4.Black );
+                                       gd.D2DDeviceContext.EndDraw();
+
+                               } );
 
                                gd.SwapChain.Present( 1, SharpDX.DXGI.PresentFlags.None );
 
index 00478a8..f271941 100644 (file)
@@ -24,6 +24,11 @@ namespace FDK.UI
 
                public void Dispose()
                {
+                       this.Clear();
+               }
+
+               public void Clear()
+               {
                        this.Root?.Dispose();
                        this.Root = null;
                }
index 8b2aa60..e495c72 100644 (file)
@@ -47,6 +47,9 @@ namespace FDK.メディア
                public FDK.カウンタ.アニメーション管理 Animation
                        => this._Animation;
 
+               public FDK.UI.Framework UIFramework
+                       => this._UIFramework;
+
                /// <summary>
                ///             IMFDXGIDeviceManager で取得している場合には、Direct3DDevice を返す。
                ///             取得していない場合には、null を返す。
@@ -347,6 +350,7 @@ namespace FDK.メディア
                private SharpDX.Direct3D11.DeviceDebug _D3DDeviceDebug = null;
                private SharpDX.Mathematics.Interop.RawViewportF[] _D3DViewPort = new SharpDX.Mathematics.Interop.RawViewportF[ 1 ];
                private FDK.カウンタ.アニメーション管理 _Animation = null;
+               private FDK.UI.Framework _UIFramework = null;
                //----------------
                #endregion
                #region " グラフィックリソース(2) スワップチェーンに依存するもの "
@@ -441,9 +445,12 @@ namespace FDK.メディア
                        } );
 
                        this._Animation = new カウンタ.アニメーション管理();
+
+                       this._UIFramework = new UI.Framework();
                }
                private void _スワップチェーンに依存しないグラフィックリソースを解放する()
                {
+                       FDKUtilities.解放する( ref this._UIFramework );
                        FDKUtilities.解放する( ref this._Animation );
 
                        テクスチャ.全インスタンスで共有するリソースを解放する();
index cd0d9f9..06a49fd 100644 (file)
@@ -124,12 +124,6 @@ namespace SST
                        protected set;
                }
 
-               public static FDK.UI.Framework UIフレームワーク
-               {
-                       get;
-                       protected set;
-               } = null;
-
                #endregion
 
 
@@ -184,8 +178,6 @@ namespace SST
                                App.最後に取得したビュアーメッセージ = null;
                                App.ビュアー用ノード = null;
 
-                               App.UIフレームワーク = new FDK.UI.Framework();
-
                                #region " メインフォームを初期化する。"
                                //----------------
                                this.Text = $"{Application.ProductName} {Application.ProductVersion}";
@@ -499,7 +491,7 @@ namespace SST
                                        //----------------
                                        #endregion
 
-                                       App.UIフレームワーク.Render( gd );
+                                       gd.UIFramework.Render( gd );
                                        
                                        #region " (3) ステージの状態をチェックし、遷移処理を行う。(必要に応じてビュアーメッセージキューの処理も行う。)"
                                        //----------------
@@ -752,8 +744,6 @@ namespace SST
                {
                        using( Log.Block( FDKUtilities.現在のメソッド名 ) )
                        {
-                               App.UIフレームワーク.Dispose();
-
                                if( App.ステージ管理.現在のステージ?.活性化している ?? false )
                                        App.ステージ管理.現在のステージ?.非活性化する( App.グラフィックデバイス );