#include "Bootstrap/Application.h" #include "Platform/Win32/EditorWindowManager.h" namespace XCEngine::UI::Editor { int Application::Run(HINSTANCE hInstance, int nCmdShow) { if (!Initialize(hInstance, nCmdShow)) { Shutdown(); return 1; } constexpr int kMaxMessagesPerTick = 64; MSG message = {}; while (true) { int processedMessageCount = 0; while (processedMessageCount < kMaxMessagesPerTick && PeekMessageW(&message, nullptr, 0U, 0U, PM_REMOVE)) { if (message.message == WM_QUIT) { Shutdown(); return static_cast(message.wParam); } TranslateMessage(&message); DispatchMessageW(&message); ++processedMessageCount; } if (m_windowManager != nullptr) { m_windowManager->DestroyClosedWindows(); if (!m_windowManager->HasWindows()) { break; } m_windowManager->RenderAllWindows(); } else { break; } } Shutdown(); return 0; } } // namespace XCEngine::UI::Editor