+++ /dev/null
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-\r
-namespace FDK\r
-{\r
- public class CActivity\r
- {\r
- // プロパティ\r
-\r
- public bool b活性化してる { get; private set; }\r
- public bool b活性化してない\r
- {\r
- get\r
- {\r
- return !this.b活性化してる;\r
- }\r
- set\r
- {\r
- this.b活性化してる = !value;\r
- }\r
- }\r
- public List<CActivity> list子Activities;\r
-\r
- /// <summary>\r
- /// <para>初めて On進行描画() を呼び出す場合に true を示す。(On活性化() 内で true にセットされる。)</para>\r
- /// <para>このフラグは、On活性化() では行えないタイミングのシビアな初期化を On進行描画() で行うために準備されている。利用は必須ではない。</para>\r
- /// <para>On進行描画() 側では、必要な初期化を追えたら false をセットすること。</para>\r
- /// </summary>\r
- protected bool b初めての進行描画 = true;\r
-\r
- \r
- // コンストラクタ\r
-\r
- public CActivity()\r
- {\r
- this.b活性化してない = true;\r
- this.list子Activities = new List<CActivity>();\r
- }\r
-\r
-\r
- // ライフサイクルメソッド\r
-\r
- #region [ 子クラスで必要なもののみ override すること。]\r
- //-----------------\r
-\r
- public virtual void On活性化()\r
- {\r
- // すでに活性化してるなら何もしない。\r
- if( this.b活性化してる )\r
- return;\r
-\r
- this.b活性化してる = true; // このフラグは、以下の処理をする前にセットする。\r
-\r
- // 自身のリソースを作成する。\r
- this.OnManagedリソースの作成();\r
- this.OnUnmanagedリソースの作成();\r
-\r
- // すべての子 Activity を活性化する。\r
- foreach( CActivity activity in this.list子Activities )\r
- activity.On活性化();\r
-\r
- // その他の初期化\r
- this.b初めての進行描画 = true;\r
- }\r
- public virtual void On非活性化()\r
- {\r
- // 活性化してないなら何もしない。\r
- if( this.b活性化してない )\r
- return;\r
-\r
- // 自身のリソースを解放する。\r
- this.OnUnmanagedリソースの解放();\r
- this.OnManagedリソースの解放();\r
-\r
- // すべての 子Activity を非活性化する。\r
- foreach( CActivity activity in this.list子Activities )\r
- activity.On非活性化();\r
-\r
- this.b活性化してない = true; // このフラグは、以上のメソッドを呼び出した後にセットする。\r
- }\r
-\r
- /// <summary>\r
- /// <para>Managed リソースの作成を行う。</para>\r
- /// <para>Direct3D デバイスが作成された直後に呼び出されるので、自分が活性化している時に限り、\r
- /// Managed リソースを作成(または再構築)すること。</para>\r
- /// <para>いつどのタイミングで呼び出されるか(いつDirect3Dが再作成されるか)分からないので、\r
- /// いつ何時呼び出されても問題無いようにコーディングしておくこと。</para>\r
- /// </summary>\r
- public virtual void OnManagedリソースの作成()\r
- {\r
- // 活性化してないなら何もしない。\r
- if( this.b活性化してない )\r
- return;\r
-\r
- // すべての 子Activity の Managed リソースを作成する。\r
- foreach( CActivity activity in this.list子Activities )\r
- activity.OnManagedリソースの作成();\r
- }\r
-\r
- /// <summary>\r
- /// <para>Unmanaged リソースの作成を行う。</para>\r
- /// <para>Direct3D デバイスが作成またはリセットされた直後に呼び出されるので、自分が活性化している時に限り、\r
- /// Unmanaged リソースを作成(または再構築)すること。</para>\r
- /// <para>いつどのタイミングで呼び出されるか(いつDirect3Dが再作成またはリセットされるか)分からないので、\r
- /// いつ何時呼び出されても問題無いようにコーディングしておくこと。</para>\r
- /// </summary>\r
- public virtual void OnUnmanagedリソースの作成()\r
- {\r
- // 活性化してないなら何もしない。\r
- if( this.b活性化してない )\r
- return;\r
-\r
- // すべての 子Activity の Unmanaged リソースを作成する。\r
- foreach( CActivity activity in this.list子Activities )\r
- activity.OnUnmanagedリソースの作成();\r
- }\r
- \r
- /// <summary>\r
- /// <para>Unmanaged リソースの解放を行う。</para>\r
- /// <para>Direct3D デバイスの解放直前またはリセット直前に呼び出される。</para>\r
- /// <para>いつどのタイミングで呼び出されるか(いつDirect3Dが解放またはリセットされるか)分からないので、\r
- /// いつ何時呼び出されても問題無いようにコーディングしておくこと。</para>\r
- /// </summary>\r
- public virtual void OnUnmanagedリソースの解放()\r
- {\r
- // 活性化してないなら何もしない。\r
- if( this.b活性化してない )\r
- return;\r
-\r
- // すべての 子Activity の Unmanaged リソースを解放する。\r
- foreach( CActivity activity in this.list子Activities )\r
- activity.OnUnmanagedリソースの解放();\r
- }\r
-\r
- /// <summary>\r
- /// <para>Managed リソースの解放を行う。</para>\r
- /// <para>Direct3D デバイスの解放直前に呼び出される。\r
- /// (Unmanaged リソースとは異なり、Direct3D デバイスのリセット時には呼び出されない。)</para>\r
- /// <para>いつどのタイミングで呼び出されるか(いつDirect3Dが解放されるか)分からないので、\r
- /// いつ何時呼び出されても問題無いようにコーディングしておくこと。</para>\r
- /// </summary>\r
- public virtual void OnManagedリソースの解放()\r
- {\r
- // 活性化してないなら何もしない。\r
- if( this.b活性化してない )\r
- return;\r
-\r
- // すべての 子Activity の Managed リソースを解放する。\r
- foreach( CActivity activity in this.list子Activities )\r
- activity.OnManagedリソースの解放();\r
- }\r
-\r
- /// <summary>\r
- /// <para>進行と描画を行う。(これらは分離されず、この1つのメソッドだけで実装する。)</para>\r
- /// <para>このメソッドは BeginScene() の後に呼び出されるので、メソッド内でいきなり描画を行ってかまわない。</para>\r
- /// </summary>\r
- /// <returns>任意の整数。呼び出し元との整合性を合わせておくこと。</returns>\r
- public virtual int On進行描画()\r
- {\r
- // 活性化してないなら何もしない。\r
- if( this.b活性化してない )\r
- return 0;\r
-\r
-\r
- /* ここで進行と描画を行う。*/\r
-\r
-\r
- // 戻り値とその意味は子クラスで自由に決めていい。\r
- return 0;\r
- }\r
- \r
- //-----------------\r
- #endregion\r
- }\r
-}
\ No newline at end of file