@brief Ӧ�ó�����
| 33 | |
| 34 | /// @brief Ӧ�ó����� |
| 35 | class AppFrame : |
| 36 | public f2dEngineEventListener |
| 37 | { |
| 38 | public: |
| 39 | static LNOINLINE AppFrame& GetInstance(); |
| 40 | private: |
| 41 | class GdiPlusScope |
| 42 | { |
| 43 | private: |
| 44 | ULONG_PTR m_gdiplusToken; |
| 45 | public: |
| 46 | GdiPlusScope() |
| 47 | { |
| 48 | Gdiplus::GdiplusStartupInput StartupInput; |
| 49 | GdiplusStartup(&m_gdiplusToken, &StartupInput, NULL); |
| 50 | } |
| 51 | ~GdiPlusScope() |
| 52 | { |
| 53 | Gdiplus::GdiplusShutdown(m_gdiplusToken); |
| 54 | } |
| 55 | }; |
| 56 | private: |
| 57 | AppStatus m_iStatus = AppStatus::NotInitialized; |
| 58 | |
| 59 | #if (defined LDEVVERSION) || (defined LDEBUG) |
| 60 | // Զ�˵����� |
| 61 | std::unique_ptr<RemoteDebuggerClient> m_DebuggerClient; |
| 62 | |
| 63 | // ���ܼ����� |
| 64 | float m_UpdateTimer = 0.f; |
| 65 | float m_RenderTimer = 0.f; |
| 66 | |
| 67 | float m_PerformanceUpdateTimer = 0.f; // ��¼���ܲ������ۼƲ���ʱ�� |
| 68 | float m_PerformanceUpdateCounter = 0.f; // ��¼�������� |
| 69 | float m_FPSTotal = 0.f; // ��¼�ڲ���ʱ�����ۼƵ�FPS |
| 70 | float m_ObjectTotal = 0.f; // ��¼�ڲ���ʱ�����ۼƵĶ����� |
| 71 | float m_UpdateTimerTotal = 0.f; // ��¼�ڲ���ʱ�����ۼƵĸ���ʱ�� |
| 72 | float m_RenderTimerTotal = 0.f; // ��¼�ڲ���ʱ�����ۼƵ���Ⱦʱ�� |
| 73 | |
| 74 | bool m_bShowCollider = false; |
| 75 | #endif |
| 76 | |
| 77 | // ���봰�� |
| 78 | GdiPlusScope m_GdiScope; |
| 79 | SplashWindow m_SplashWindow; |
| 80 | |
| 81 | // ��Դ������ |
| 82 | ResourceMgr m_ResourceMgr; |
| 83 | |
| 84 | // ����� |
| 85 | std::unique_ptr<GameObjectPool> m_GameObjectPool; |
| 86 | |
| 87 | // Lua����� |
| 88 | lua_State* L = nullptr; |
| 89 | |
| 90 | // ѡ����ֵ |
| 91 | bool m_bSplashWindowEnabled = false; |
| 92 | bool m_OptionWindowed = true; |
nothing calls this directly
no outgoing calls
no test coverage detected