void AEEditorPrefs::ValidateWindow() { Graphics* graphics = GetSubsystem<Graphics>(); IntVector2 windowPosition = graphics->GetWindowPosition(); int monitors = graphics->GetNumMonitors(); IntVector2 maxResolution; for (int i = 0; i < monitors; i++) { IntVector2 monitorResolution = graphics->GetMonitorResolution(i); maxResolution += monitorResolution; } if (windowPosition.x_ >= maxResolution.x_ || windowPosition.y_ >= maxResolution.y_ || (windowPosition.x_ + graphics->GetWidth()) < 0 || (windowPosition.y_ + graphics->GetHeight()) < 0) { JSONValue prefs; if (!LoadPreferences(prefs)) return; bool editor = context_->GetEditorContext(); JSONValue window; GetDefaultWindowPreferences(window, editor); prefs[editor ? "editorWindow" : "playerWindow"] = window; // TODO: add highDPI support bool highDPI = false; //Setting the mode to 0 width/height will use engine defaults for window size and layout graphics->SetMode(0, 0, graphics->GetFullscreen(), graphics->GetBorderless(), graphics->GetResizable(), highDPI, graphics->GetVSync(), graphics->GetTripleBuffer(), graphics->GetMultiSample(), 0, 0); SavePreferences(prefs); } }