OSDN Git Service

#xxxxx DTXViewerのプロジェクトを追加。
[dtxmania/dtxmania.git] / DTXViewerプロジェクト / @FDK10プロジェクト / Activity.h
diff --git a/DTXViewerプロジェクト/@FDK10プロジェクト/Activity.h b/DTXViewerプロジェクト/@FDK10プロジェクト/Activity.h
new file mode 100644 (file)
index 0000000..7ef5faa
--- /dev/null
@@ -0,0 +1,86 @@
+
+//
+// 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»\81\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;