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);
        }
    }