#include #include #include #include #include #include #include #include #include // TODO : Replace with message box from framework + call main and not winmain + subsystem #include #include namespace Juliet { void Win32EditorApplication::Init() { Log(LogLevel::Message, LogCategory::Editor, "Initializing Editor Application..."); MainWindow = CreatePlatformWindow("Juliet Editor", 1280, 720); GraphicsConfig config; GraphicsDevice* device = CreateGraphicsDevice(config); Assert(!device && "Currently not implemented so device should be null"); Running = MainWindow != nullptr; } void Win32EditorApplication::Shutdown() { Log(LogLevel::Message, LogCategory::Editor, "Shutdown Editor Application..."); if (MainWindow) { DestroyPlatformWindow(MainWindow); } } void Win32EditorApplication::Update() { SystemEvent evt; while (GetEvent(evt)) { if (evt.Type == EventType::Window_Close_Request) { if (evt.Data.Window.AssociatedWindowID == GetWindowID(MainWindow)) { Running = false; } } } } bool Win32EditorApplication::IsRunning() { return Running; } namespace { Win32EditorApplication EditorApplication; } Win32EditorApplication& GetEditorApplication() { return EditorApplication; } } // namespace Juliet int main(int argc, char** argv) { CreateMutex(0, false, L"Local\\Juliet.Editor"); if (GetLastError() == ERROR_ALREADY_EXISTS) { MessageBox(nullptr, L"An instance of Juliet is already running.", L"Juliet", MB_OK | MB_ICONEXCLAMATION); return EXIT_FAILURE; } StartApplication(Juliet::EditorApplication, Juliet::JulietInit_Flags::Display); // Pause here to not close the console window immediatly on stop system("PAUSE"); return EXIT_SUCCESS; }