--- /dev/null
+
+//
+// Name: Activity \83N\83\89\83X
+// Desc: \93à\95\94\8fó\91Ô\82Æ\93à\95\94\89æ\91\9c\82ð\95Û\8e\9d\82µ\81A\90i\8ds\82Æ\95`\89æ\82ð\8ds\82¤\8eÀ\91Ì\82Ì\8aî\96{\83N\83\89\83X\81B
+//
+// \81E\93à\95\94\8fó\91Ô\82Æ\82Í\81A\90i\8ds\82É\82©\82©\82í\82é\8fó\91Ô\95Ï\90\94\81A\82»\82µ\82Ä\93à\95\94\89æ\91\9c\82È\82Ç\82ð\82³\82·\81B\81i\89æ\91\9c\82Í\8fó\91Ô\82Ì\88ê\95\94\81j
+// \81E\93à\95\94\89æ\91\9c\82Æ\82Í\81A\83e\83N\83X\83`\83\83\82â\83T\81[\83t\83F\83C\83X\82ð\82³\82·\81B
+//
+// \81EActivity \82Ì\94h\90¶\83N\83\89\83X\82Í\81AMy... \83\81\83\\83b\83h\82È\82ç\82Ñ\82É MainWork() \83\81\83\\83b\83h\82ð\83I\81[\83o\81[\83\89\83C\83h\82·\82é\81B
+// \81E\82P\82Â\82Ì Activity \82Í\81A\95¡\90\94\82Ì\8eqActivity\81A\8eq\83e\83N\83X\83`\83\83\82ð\95Û\8e\9d\82·\82é\82±\82Æ\82ª\82Å\82«\82é\81B
+// \81EAddChild() / RemoveChild() \82Å\92Ç\89Á\8dí\8f\9c
+// \81@\81EActivity\81A\83e\83N\83X\83`\83\83\82Ì AddChild() \82Í\81AMyOneTimeSceneInit() \93à\82Å\8ds\82¤\82±\82Æ\81B
+// \81@\81EMy...\83\81\83\\83b\83h\82Å\82Í\81A\8eqActivity \82Ì\91\80\8dì\82ð\89½\82à\8ds\82í\82È\82¢\82±\82Æ\81B
+//
+// \81E\83A\83v\83\8a\83P\81[\83V\83\87\83\93\81iCD3DApplication \82Ü\82½\82Í\82»\82Ì\94h\90¶\81j\82ª\95Û\97L\82·\82é Activity \82ð\81A
+// \81u\83g\83b\83v\83\8c\83x\83\8b Activity\81v\82Æ\8cÄ\82Ô\81B
+//
+// \81E\83A\83v\83\8a\83P\81[\83V\83\87\83\93\82Í\81A\88È\89º\82Ì\83^\83C\83~\83\93\83O\82Å\83g\83b\83v\83\8c\83x\83\8bActivity \82ð\8f\88\97\9d\82·\82é\82±\82Æ\81B
+// \81EOneTimeSceneInit() \8e\9e \81¨\81@\82·\82×\82Ä\82Ì\83g\83b\83v\83\8c\83x\83\8bActivity \82Ì OneTimeSceneInit() \82ð\8cÄ\82Ñ\8fo\82·\81B
+// \81EInitDeviceObjects() \8e\9e \81¨\81@\81@\81@\81@\81@\81@\81@\81@\81@\81V\81@\81@\81@\81@\81@\81@\81@InitDeviceObjects() \82ð\8cÄ\82Ñ\8fo\82·\81B
+// \81ERestoreDeviceObjects() \8e\9e \81¨\81@\81@\81@\81@\81@\81@\81@\81@\81@\81V\81@\81@\81@\81@\81@\81@\81@RestoreDeviceTextures(), RestoreDeviceSurfaces() \82Ì\8f\87\82É\8cÄ\82Ñ\8fo\82·\81B
+// \81EInvalidateDeviceObjects() \8e\9e \81¨\81@\81@\81@\81@\81@\81@\81@\81@\81@\81V\81@\81@\81@\81@\81@\81@\81@InvalidateDeviceObjects() \82ð\8cÄ\82Ñ\8fo\82·\81B
+// \81EDeleteDeviceObjects() \8e\9e \81¨\81@\81@\81@\81@\81@\81@\81@\81@\81@\81V\81@\81@\81@\81@\81@\81@\81@DeleteDeviceObjects() \82ð\8cÄ\82Ñ\8fo\82·\81B
+// \81EFinalCleanup() \8e\9e \81¨\81@\81@\81@\81@\81@\81@\81@\81@\81@\81V\81@\81@\81@\81@\81@\81@\81@FinalCleanup() \82ð\8cÄ\82Ñ\8fo\82·\81B
+// \81EActivity \82ð\97L\8cø\89»\82µ\82½\82¢\8e\9e \81¨\81@\81@\81@\81@\81@\81@\81@\81@\81@\81V\81@\81@\81@\81@\81@\81@\81@Activate() \82ð\8cÄ\82Ñ\8fo\82·\81B
+// \81EActivity \82ð\96³\8cø\89»\82µ\82½\82¢\8e\9e \81¨\81@\81@\81@\81@\81@\81@\81@\81@\81@\81V\81@\81@\81@\81@\81@\81@\81@UnActivate() \82ð\8cÄ\82Ñ\8fo\82·\81B
+//
+
+#pragma once
+
+#include "CTexture.h"
+#include "CSurface.h"
+#include "CSet.h"
+
+namespace FDK {
+ namespace AppBase {
+
+class Activity
+{
+public:
+ void AddChild( Activity* c ) {Activities.insert(c);} // \8eqActivity\82Ì\92Ç\89Á
+ void AddChild( CTexture* c ) {Textures.insert(c);} // \8eqTexture\82Ì\92Ç\89Á
+ void AddChild( CSurface* c ) {Surfaces.insert(c);} // \8eqSurface\82Ì\92Ç\89Á
+ void RemoveChild( Activity* c ) {Activities.erase(c);} // \8eqActivity\82Ì\8dí\8f\9c
+ void RemoveChild( CTexture* c ) {Textures.erase(c);} // \8eqTexture\82Ì\8dí\8f\9c
+ void RemoveChild( CSurface* c ) {Surfaces.erase(c);} // \8eqSurface\82Ì\8dí\8f\9c
+
+ virtual bool OneTimeSceneInit(); // MyObeTimeSceneInit()\81{\8eq\8fW\8d\87\82Ì\82·\82×\82Ä\82Ì OneTimeSceneInit() \82ð\8cÄ\82Ñ\8fo\82·\81B
+ virtual bool Activate(); // MyActivate()\81{\8eq\8fW\8d\87\82Ì\82·\82×\82Ä\82Ì Activate() \82ð\8cÄ\82Ñ\8fo\82·\81B
+ virtual bool UnActivate(); // MyUnActivate()\81{\8eq\8fW\8d\87\82Ì\82·\82×\82Ä\82Ì UnActivate() \82ð\8cÄ\82Ñ\8fo\82·\81B
+ virtual bool FinalCleanup(); // MyFinalCleanup()\81{\8eq\8fW\8d\87\82Ì\82·\82×\82Ä\82Ì FinalCleanup() \82ð\8cÄ\82Ñ\8fo\82·\81B
+ virtual bool InitDeviceObjects(); // MyInitDeviceObjects()\81{\8eq\8fW\8d\87\82Ì\82·\82×\82Ä\82Ì InitDeviceObjects() \82ð\8cÄ\82Ñ\8fo\82·\81B
+ virtual bool RestoreDeviceTextures(); // MyRestoreDeviceTextures()\81{\8eq\8fW\8d\87\82Ì\82·\82×\82Ä\82Ì RestoreDeviceTextures() \82ð\8cÄ\82Ñ\8fo\82·\81B
+ virtual bool RestoreDeviceSurfaces(); // MyRestoreDeviceSurfaces()\81{\8eq\8fW\8d\87\82Ì\82·\82×\82Ä\82Ì RestoreDeviceSurfaces() \82ð\8cÄ\82Ñ\8fo\82·\81B
+ virtual bool InvalidateDeviceObjects(); // MyInvalidateDeviceObjects()\81{\8eq\8fW\8d\87\82Ì\82·\82×\82Ä\82Ì InvalidateDeviceObjects() \82ð\8cÄ\82Ñ\8fo\82·\81B
+ virtual bool DeleteDeviceObjects(); // MyDeleteDeviceObjects()\81{\8eq\8fW\8d\87\82Ì\82·\82×\82Ä\82Ì DeleteDeviceObjects() \82ð\8cÄ\82Ñ\8fo\82·\81B
+
+ virtual int MainWork() {return 0;} // \90i\8ds\82Æ\95`\89æ
+ bool IsActive() {return bActivate;} // \8c»\8dÝ\8a\88\90«\89»\8fó\91Ô\82È\82çtrue\82ð\95Ô\82·\81B
+
+protected:
+ virtual bool MyOneTimeSceneInit() {return true;} // \8f\89\8aú\89»
+ virtual bool MyActivate(); // \8a\88\90«\89»\81G \81@MyActivate() \82Í MyRestoreDevice\81`() \82ð\8eÀ\8ds\82·\82é\81B
+ virtual bool MyUnActivate(); // \94ñ\8a\88\90«\89»\81G MyUnActivate() \82Í MyInvalidateDeviceObjects() \82ð\8eÀ\8ds\82·\82é\81B
+ virtual bool MyFinalCleanup() {return true;} // \8fI\97¹\8f\88\97\9d
+ virtual bool MyInitDeviceObjects() {return true;} // \89æ\91\9c\82Ì\93o\98^
+ virtual bool MyRestoreDeviceTextures(); // \8eq\83e\83N\83X\83`\83\83\89æ\91\9c\82Ì\8d\\92z
+ virtual bool MyRestoreDeviceSurfaces(); // \8eq\83T\81[\83t\83F\83C\83X\89æ\91\9c\82Ì\8d\\92z
+ virtual bool MyInvalidateDeviceObjects(); // \89æ\91\9c\82Ì\96³\8cø\89»
+ virtual bool MyDeleteDeviceObjects(); // \89æ\91\9c\82Ì\8dí\8f\9c
+
+public:
+ Activity();
+
+protected:
+ bool bActivate; // \8a\88\90«\89»\8fó\91Ô\82È\82çtrue
+ bool bFirstWork;
+
+ CSet<Activity> Activities; // Activitiy \8eq\8fW\8d\87
+ CSet<CTexture> Textures; // CTexture \8eq\8fW\8d\87
+ CSet<CSurface> Surfaces; // CSurface \8eq\8fW\8d\87
+};
+ }//AppBase
+}//FDK
+
+using namespace FDK::AppBase;