Exemple #1
0
            public static void DrawPostProcessing()
            {
                //Post Processing Stack
                string ppsLabel = "Post Processing Stack v2";
                string ppsText  = (PostProcessingInstallation.IS_INSTALLED) ? "Installed (Package Manager)" : "Not installed";

                ppsText = (PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.Integrated) ? "Integrated" : ppsText;
                SCPE_GUI.Status ppsStatus = (PostProcessingInstallation.IS_INSTALLED) ? SCPE_GUI.Status.Ok : SCPE_GUI.Status.Error;

                ppsLabel = "Post Processing";
                //Append current version
                if (PostProcessingInstallation.IS_INSTALLED)
                {
                    ppsLabel += " (" + PostProcessingInstallation.PPS_VERSION + ")";
                }

                //Outdated version
                ppsText   = (PostProcessingInstallation.PPSVersionStatus == PostProcessingInstallation.VersionStatus.Outdated) ? "Outdated" : ppsText;
                ppsStatus = (PostProcessingInstallation.PPSVersionStatus == PostProcessingInstallation.VersionStatus.Outdated) ? SCPE_GUI.Status.Warning : ppsStatus;

                SCPE_GUI.DrawStatusBox(new GUIContent(ppsLabel, EditorGUIUtility.IconContent("Camera Gizmo").image), ppsText, ppsStatus);

                //Warning in 2019.3 and 2019.4
#if UNITY_2019_3_OR_NEWER && !UNITY_2020_1_OR_NEWER
                if (RenderPipelineInstallation.CurrentPipeline == RenderPipelineInstallation.Pipeline.URP && PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.PackageManager)
                {
                    EditorGUILayout.HelpBox("Support for the Post Processing Stack with URP will no longer be possible in Unity 2020.1!", MessageType.Warning);
                }
#endif
                if (RenderPipelineInstallation.CurrentPipeline == RenderPipelineInstallation.Pipeline.URP && (PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.Integrated))
                {
                    EditorGUILayout.HelpBox("URP is installed, effects will use integrated post processing system", MessageType.None);
                }

                //Built-in render pipeline and LWRP require PPS
                if (PostProcessingInstallation.IS_INSTALLED == false && RenderPipelineInstallation.CurrentPipeline != RenderPipelineInstallation.Pipeline.URP)
                {
                    using (new EditorGUILayout.HorizontalScope())
                    {
                        if (SCPE_GUI.DrawActionBox("Install " + PostProcessingInstallation.LATEST_COMPATIBLE_VERSION, EditorGUIUtility.IconContent("BuildSettings.Standalone.Small").image))
                        {
                            PostProcessingInstallation.InstallPackage();
                        }
                    }
                } //End if-installed
                //When installed but outdated
                else
                {
                    using (new EditorGUILayout.HorizontalScope())
                    {
                        if (PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.PackageManager && PostProcessingInstallation.PPSVersionStatus == PostProcessingInstallation.VersionStatus.Outdated)
                        {
                            if (SCPE_GUI.DrawActionBox("Update to " + PostProcessingInstallation.LATEST_COMPATIBLE_VERSION, EditorGUIUtility.IconContent("BuildSettings.Standalone.Small").image))
                            {
                                PostProcessingInstallation.InstallPackage();
                            }
                        }
                    }
                }
            }
Exemple #2
0
            public static void DrawColorSpace()
            {
                string colorText = (UnityEditor.PlayerSettings.colorSpace == ColorSpace.Linear) ? "Linear" : "Linear is recommended";

                SCPE_GUI.Status folderStatus = (UnityEditor.PlayerSettings.colorSpace == ColorSpace.Linear) ? SCPE_GUI.Status.Ok : SCPE_GUI.Status.Warning;

                SCPE_GUI.DrawStatusBox(new GUIContent("Color space", EditorGUIUtility.IconContent("d_PreTextureRGB").image), colorText, folderStatus);
            }
Exemple #3
0
            public static void DrawPlatform()
            {
                string compatibilityText = SCPE.IsCompatiblePlatform ? "Compatible" : "Unsupported";

                SCPE_GUI.Status compatibilityStatus = SCPE.IsCompatiblePlatform ? SCPE_GUI.Status.Ok : SCPE_GUI.Status.Error;

                SCPE_GUI.DrawStatusBox(TargetPlatform(), compatibilityText, compatibilityStatus);
            }
Exemple #4
0
            public static void DrawPipeline()
            {
                string pipelineText = string.Empty;
                string pipelineName = "Built-in Render pipeline";

                SCPE_GUI.Status compatibilityStatus = SCPE_GUI.Status.Info;

                switch (RenderPipelineInstallation.CurrentPipeline)
                {
                case RenderPipelineInstallation.Pipeline.BuiltIn:
                    pipelineName = "Built-in Render pipeline";
                    break;

                case RenderPipelineInstallation.Pipeline.LWRP:
                    pipelineName = "Lightweight Render Pipeline " + RenderPipelineInstallation.SRP_VERSION;
                    break;

                case RenderPipelineInstallation.Pipeline.URP:
                    pipelineName = "URP " + RenderPipelineInstallation.SRP_VERSION;
                    break;

                case RenderPipelineInstallation.Pipeline.HDRP:
                    pipelineName = "HDRP " + RenderPipelineInstallation.SRP_VERSION;
                    break;
                }

                if (RenderPipelineInstallation.VersionStatus == RenderPipelineInstallation.Version.Compatible)
                {
                    pipelineText        = "Compatible";
                    compatibilityStatus = SCPE_GUI.Status.Ok;
                }
                if (RenderPipelineInstallation.VersionStatus == RenderPipelineInstallation.Version.Outdated)
                {
                    pipelineText        = "Outdated (Requires " + RenderPipelineInstallation.MIN_URP_VERSION + ")";
                    compatibilityStatus = Status.Error;
                }
                if (RenderPipelineInstallation.VersionStatus == RenderPipelineInstallation.Version.Incompatible)
                {
                    pipelineText        = "Unsupported";
                    compatibilityStatus = SCPE_GUI.Status.Error;
                }

                SCPE_GUI.DrawStatusBox(new GUIContent(pipelineName, EditorGUIUtility.IconContent("d_Profiler.Rendering").image), pipelineText, compatibilityStatus);

                if (RenderPipelineInstallation.VersionStatus == RenderPipelineInstallation.Version.Outdated)
                {
                    using (new EditorGUILayout.HorizontalScope())
                    {
                        if (SCPE_GUI.DrawActionBox("Update to " + RenderPipelineInstallation.LATEST_COMPATIBLE_VERSION, EditorGUIUtility.IconContent("BuildSettings.Standalone.Small").image))
                        {
                            RenderPipelineInstallation.UpdateToLatest();
                        }
                    }
                }
            }
Exemple #5
0
 public static void DrawStatusBox(GUIContent content, string status, SCPE_GUI.Status type, bool boxed = true)
 {
     using (new EditorGUILayout.HorizontalScope(EditorStyles.label))
     {
         if (content != null)
         {
             content.text = "  " + content.text;
             EditorGUILayout.LabelField(content, StatusContent);
         }
         DrawStatusString(status, type, boxed);
     }
 }
Exemple #6
0
            public static void DrawPipeline()
            {
#if PACKAGE_MANAGER
                string          pipelineText        = string.Empty;
                string          pipelineName        = "Built-in Render pipeline";
                SCPE_GUI.Status compatibilityStatus = SCPE_GUI.Status.Info;

                switch (RenderPipelineInstallation.CurrentPipeline)
                {
                case RenderPipelineInstallation.Pipeline.BuiltIn:
                    pipelineName = "Built-in Render pipeline";
                    break;

                case RenderPipelineInstallation.Pipeline.LWRP:
                    pipelineName = "LWRP " + RenderPipelineInstallation.SRP_VERSION;
                    break;

                case RenderPipelineInstallation.Pipeline.HDRP:
                    pipelineName = "HDRP " + RenderPipelineInstallation.SRP_VERSION;
                    break;
                }

                if (RenderPipelineInstallation.VersionStatus == RenderPipelineInstallation.Version.Compatible)
                {
                    pipelineText        = "Compatible";
                    compatibilityStatus = SCPE_GUI.Status.Ok;
                }
                if (RenderPipelineInstallation.VersionStatus == RenderPipelineInstallation.Version.Incompatible)
                {
                    pipelineText        = "Unsupported (Requires " + RenderPipelineInstallation.MIN_SRP_VERSION + ")";
                    compatibilityStatus = SCPE_GUI.Status.Error;
                }

                SCPE_GUI.DrawStatusBox(new GUIContent(pipelineName, EditorGUIUtility.IconContent("d_Profiler.Rendering").image), pipelineText, compatibilityStatus);
#endif
            }
Exemple #7
0
 public static void DrawLogLine(string text, SCPE_GUI.Status status = Status.Ok)
 {
     EditorGUILayout.LabelField(new GUIContent(text), LogText);
 }
Exemple #8
0
            public static void DrawPostProcessing()
            {
                //Post Processing Stack
                string ppsLabel = "Post Processing Stack v2";
                string ppsText  = (PostProcessingInstallation.IS_INSTALLED) ? (PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.GitHub) ? "Installed (GitHub)" : "Installed (Package Manager)" : "Not installed";

                SCPE_GUI.Status ppsStatus = (PostProcessingInstallation.IS_INSTALLED) ? SCPE_GUI.Status.Ok : SCPE_GUI.Status.Error;

#if PACKAGE_MANAGER
                ppsLabel = "Post Processing";
                //Append current version
                if (PostProcessingInstallation.IS_INSTALLED)
                {
                    ppsLabel += " (" + PostProcessingInstallation.PPS_VERSION + ")";
                }

                //Outdated version
                ppsText   = (PostProcessingInstallation.PPSVersionStatus == PostProcessingInstallation.Version.Outdated) ? "Outdated" : ppsText;
                ppsStatus = (PostProcessingInstallation.PPSVersionStatus == PostProcessingInstallation.Version.Outdated) ? SCPE_GUI.Status.Warning : ppsStatus;
#endif
                SCPE_GUI.DrawStatusBox(new GUIContent(ppsLabel, EditorGUIUtility.IconContent("Camera Gizmo").image), ppsText, ppsStatus);

                if (PostProcessingInstallation.IS_INSTALLED == false)
                {
#if PACKAGE_MANAGER
                    PostProcessingInstallation.Config = PostProcessingInstallation.Configuration.PackageManager;

                    /* v1, no longer supporting GitHub installation in 2018.1+
                     * using (new EditorGUILayout.HorizontalScope())
                     * {
                     *  EditorGUILayout.LabelField("       Installation source", EditorStyles.label);
                     *
                     *  if (GUILayout.Button(new GUIContent("GitHub"), PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.GitHub ? SCPE_GUI.ToggleButtonLeftToggled : SCPE_GUI.ToggleButtonLeftNormal))
                     *  {
                     *      PostProcessingInstallation.Config = PostProcessingInstallation.Configuration.GitHub;
                     *  }
                     *  if (GUILayout.Button(new GUIContent("Package Manager"), PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.PackageManager ? SCPE_GUI.ToggleButtonRightToggled : SCPE_GUI.ToggleButtonRightNormal))
                     *  {
                     *      PostProcessingInstallation.Config = PostProcessingInstallation.Configuration.PackageManager;
                     *  }
                     * }
                     */
#else
                    PostProcessingInstallation.Config = PostProcessingInstallation.Configuration.GitHub;
#endif

                    using (new EditorGUILayout.HorizontalScope())
                    {
                        if (PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.GitHub)
                        {
                            if (SCPE_GUI.DrawActionBox(string.IsNullOrEmpty(PostProcessingInstallation.PACKAGE_PATH) ? "Download" : "Install", EditorGUIUtility.IconContent("BuildSettings.Standalone.Small").image))
                            {
                                //Download
                                if (PostProcessingInstallation.PACKAGE_PATH.Contains(".unitypackage") == false)
                                {
                                    //Open browser and start download
                                    Application.OpenURL(PostProcessingInstallation.PP_DOWNLOAD_URL);

                                    //While the editor is minimized at this point, prompt the file browser
                                    if (EditorUtility.DisplayDialog("Post Processing Stack download", "Once the file has been downloaded, locate the file path and install it", "Browse"))
                                    {
                                        PostProcessingInstallation.PACKAGE_PATH = EditorUtility.OpenFilePanel("Package download location", "", "unitypackage");
                                    }
                                }
                                //Install
                                else
                                {
                                    PostProcessingInstallation.InstallPackage();
                                }
                            }
                        }
                        else
                        {
                            if (SCPE_GUI.DrawActionBox("Install " + PostProcessingInstallation.LATEST_COMPATIBLE_VERSION, EditorGUIUtility.IconContent("BuildSettings.Standalone.Small").image))
                            {
                                PostProcessingInstallation.InstallPackage();
                            }
                        }
                    }

                    EditorGUILayout.Space();

                    if (PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.GitHub)
                    {
                        using (new EditorGUILayout.HorizontalScope())
                        {
                            EditorGUILayout.LabelField(new GUIContent(" Package location", EditorGUIUtility.IconContent("d_UnityLogo").image));

                            EditorGUILayout.TextField(PostProcessingInstallation.PACKAGE_PATH, SCPE_GUI.PathField, GUILayout.MaxWidth(180f));

                            if (GUILayout.Button("...", GUILayout.MaxWidth(30f)))
                            {
                                PostProcessingInstallation.PACKAGE_PATH = EditorUtility.OpenFilePanel("Package download location", "", "unitypackage");
                            }
                        }
                    }
                    else
                    {
                    }
                } //End if-installed
                //When installed but outdated
                else
                {
                    using (new EditorGUILayout.HorizontalScope())
                    {
                        if (PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.PackageManager && PostProcessingInstallation.PPSVersionStatus == PostProcessingInstallation.Version.Outdated)
                        {
                            if (SCPE_GUI.DrawActionBox("Update to " + PostProcessingInstallation.LATEST_COMPATIBLE_VERSION, EditorGUIUtility.IconContent("BuildSettings.Standalone.Small").image))
                            {
                                PostProcessingInstallation.InstallPackage();
                            }
                        }
                    }
                }
            }
Exemple #9
0
        void DrawInstallation()
        {
            SetWindowHeight(350f);

            using (new EditorGUILayout.VerticalScope())
            {
                EditorGUILayout.Space();

                //Package Version
                {
                    string versionText = null;
                    versionText = (PackageVersionCheck.IS_UPDATED) ? "Latest version" : "New version available";
                    SCPE_GUI.Status versionStatus;
                    versionStatus = (PackageVersionCheck.IS_UPDATED) ? SCPE_GUI.Status.Ok : SCPE_GUI.Status.Warning;

                    SCPE_GUI.DrawStatusBox(new GUIContent(SCPE.INSTALLED_VERSION, EditorGUIUtility.IconContent("cs Script Icon").image), versionText, versionStatus);
                }

                if (!PackageVersionCheck.IS_UPDATED)
                {
                    using (new EditorGUILayout.HorizontalScope())
                    {
                        if (SCPE_GUI.DrawActionBox("Update", EditorGUIUtility.IconContent("BuildSettings.Standalone.Small").image))
                        {
                            SCPE.OpenStorePage();
                            this.Close();
                        }
                    }
                }

                //Unity Version
                {
                    string versionText = null;
                    versionText = (UnityVersionCheck.COMPATIBLE) ? "Compatible" : "Not compatible";
                    versionText = (UnityVersionCheck.UNTESTED) ? "Untested!" : versionText;
                    SCPE_GUI.Status versionStatus;
                    versionStatus = (UnityVersionCheck.COMPATIBLE) ? SCPE_GUI.Status.Ok : SCPE_GUI.Status.Error;
                    versionStatus = (UnityVersionCheck.UNTESTED) ? SCPE_GUI.Status.Warning : versionStatus;

                    SCPE_GUI.DrawStatusBox(new GUIContent("Unity " + UnityVersionCheck.UnityVersion, EditorGUIUtility.IconContent("UnityLogo").image), versionText, versionStatus);
                }

                /*
                 * //Folder
                 * {
                 *  if (PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.GitHub)
                 *  {
                 *      string folderText = (Installer.IS_CORRECT_BASE_FOLDER) ? "Correct location" : "Outside \"PostProcessing/\"";
                 *      SCPE_GUI.Status folderStatus = (Installer.IS_CORRECT_BASE_FOLDER) ? SCPE_GUI.Status.Ok : SCPE_GUI.Status.Error;
                 *
                 *      SCPE_GUI.DrawStatusBox(new GUIContent("SC Post Effects folder", EditorGUIUtility.IconContent("FolderEmpty Icon").image), folderText, folderStatus);
                 *
                 *      if (!Installer.IS_CORRECT_BASE_FOLDER)
                 *      {
                 *          if (!Installer.IS_CORRECT_BASE_FOLDER)
                 *          {
                 *              EditorGUILayout.HelpBox("Please move the SC Post Effects folder to where you've installed the Post Processing Stack", MessageType.Error);
                 *          }
                 *      }
                 *  }
                 *
                 * }
                 */
                //Color space
                {
                    string          colorText    = (UnityEditor.PlayerSettings.colorSpace == ColorSpace.Linear) ? "Linear" : "Linear is recommended";
                    SCPE_GUI.Status folderStatus = (UnityEditor.PlayerSettings.colorSpace == ColorSpace.Linear) ? SCPE_GUI.Status.Ok : SCPE_GUI.Status.Warning;

                    SCPE_GUI.DrawStatusBox(new GUIContent("Color space", EditorGUIUtility.IconContent("d_PreTextureRGB").image), colorText, folderStatus);
                }

                //Post Processing Stack
                string          ppsText   = (PostProcessingInstallation.IS_INSTALLED) ? (PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.GitHub) ? "Installed (GitHub)" : "Installed (Package Manager)" : "Not installed";
                SCPE_GUI.Status ppsStatus = (PostProcessingInstallation.IS_INSTALLED) ? SCPE_GUI.Status.Ok : SCPE_GUI.Status.Error;

                string ppsLabel = "Post Processing Stack v2";
#if PACKAGE_MANAGER
                ppsLabel = "Post Processing";
#endif
                SCPE_GUI.DrawStatusBox(new GUIContent(ppsLabel, EditorGUIUtility.IconContent("Camera Gizmo").image), ppsText, ppsStatus);

                /*
                 * using (new EditorGUILayout.HorizontalScope(EditorStyles.label))
                 * {
                 *  EditorGUILayout.LabelField("Change shader configuration", EditorStyles.label);
                 *
                 *  if (GUILayout.Button(new GUIContent("GitHub"), SCPE_GUI.ToggleButtonLeftNormal))
                 *  {
                 *      Installer.ConfigureShaderPaths(PostProcessingInstallation.Configuration.GitHub);
                 *  }
                 *  if (GUILayout.Button(new GUIContent("Package Manager"), SCPE_GUI.ToggleButtonRightNormal))
                 *  {
                 *      Installer.ConfigureShaderPaths(PostProcessingInstallation.Configuration.PackageManager);
                 *  }
                 * }
                 */
            }
        }
Exemple #10
0
        private void StartScreen()
        {
            EditorGUILayout.HelpBox("\nThis wizard will guide you through the installation of the SC Post Effects package\n\nPress \"Next\" to continue...\n", MessageType.Info);

            EditorGUILayout.Space();

            EditorGUILayout.LabelField("Pre-install checks", SCPE_GUI.Header);

            EditorGUILayout.Space();

            using (new EditorGUILayout.VerticalScope(EditorStyles.textArea))
            {
                EditorGUILayout.Space();

                //Package Version
                {
                    string versionText = null;
                    versionText = (PackageVersionCheck.IS_UPDATED) ? "Latest version" : "New version available";
                    SCPE_GUI.Status versionStatus;
                    versionStatus = (PackageVersionCheck.IS_UPDATED) ? SCPE_GUI.Status.Ok : SCPE_GUI.Status.Warning;

                    SCPE_GUI.DrawStatusBox(new GUIContent(SCPE.INSTALLED_VERSION, EditorGUIUtility.IconContent("cs Script Icon").image), versionText, versionStatus);
                }

                if (!PackageVersionCheck.IS_UPDATED)
                {
                    using (new EditorGUILayout.HorizontalScope())
                    {
                        if (SCPE_GUI.DrawActionBox("Update", EditorGUIUtility.IconContent("BuildSettings.Standalone.Small").image))
                        {
                            SCPE.OpenStorePage();
                        }
                    }
                }

                //Unity Version
                {
                    string versionText = null;
                    versionText = (UnityVersionCheck.COMPATIBLE) ? "Compatible" : "Not compatible";
                    versionText = (UnityVersionCheck.UNTESTED) ? "Untested!" : versionText;
                    SCPE_GUI.Status versionStatus;
                    versionStatus = (UnityVersionCheck.COMPATIBLE) ? SCPE_GUI.Status.Ok : SCPE_GUI.Status.Error;
                    versionStatus = (UnityVersionCheck.UNTESTED) ? SCPE_GUI.Status.Warning : versionStatus;

                    SCPE_GUI.DrawStatusBox(new GUIContent("Unity " + UnityVersionCheck.UnityVersion, EditorGUIUtility.IconContent("UnityLogo").image), versionText, versionStatus);
                }
                //Folder

                /*
                 * {
                 #if !PACKAGE_MANAGER
                 *  string folderText = (Installer.IS_CORRECT_BASE_FOLDER) ? "Correct location" : "Outside \"PostProcessing/\"";
                 *  SCPE_GUI.Status folderStatus = (Installer.IS_CORRECT_BASE_FOLDER) ? SCPE_GUI.Status.Ok : SCPE_GUI.Status.Error;
                 *
                 *  SCPE_GUI.DrawStatusBox(new GUIContent("SC Post Effects folder", EditorGUIUtility.IconContent("FolderEmpty Icon").image), folderText, folderStatus);
                 *
                 *  if (!Installer.IS_CORRECT_BASE_FOLDER && (PostProcessingInstallation.IS_INSTALLED))
                 *  {
                 *      EditorGUILayout.HelpBox("Please move the SC Post Effects folder to where you've installed the Post Processing Stack", MessageType.Error);
                 *  }
                 #endif
                 * }
                 */
                //Color space
                {
                    string          colorText    = (UnityEditor.PlayerSettings.colorSpace == ColorSpace.Linear) ? "Linear" : "Linear is recommended";
                    SCPE_GUI.Status folderStatus = (UnityEditor.PlayerSettings.colorSpace == ColorSpace.Linear) ? SCPE_GUI.Status.Ok : SCPE_GUI.Status.Warning;

                    SCPE_GUI.DrawStatusBox(new GUIContent("Color space", EditorGUIUtility.IconContent("d_PreTextureRGB").image), colorText, folderStatus);
                }

                //Post Processing Stack
                string          ppsText   = (PostProcessingInstallation.IS_INSTALLED) ? (PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.GitHub) ? "Installed (GitHub)" : "Installed (Package Manager)" : "Not installed";
                SCPE_GUI.Status ppsStatus = (PostProcessingInstallation.IS_INSTALLED) ? SCPE_GUI.Status.Ok : SCPE_GUI.Status.Error;

                string ppsLabel = "Post Processing Stack v2";
#if PACKAGE_MANAGER
                ppsLabel = "Post Processing";
#endif
                SCPE_GUI.DrawStatusBox(new GUIContent(ppsLabel, EditorGUIUtility.IconContent("Camera Gizmo").image), ppsText, ppsStatus);

                if (PostProcessingInstallation.IS_INSTALLED == false)
                {
#if PACKAGE_MANAGER
                    using (new EditorGUILayout.HorizontalScope())
                    {
                        EditorGUILayout.LabelField("       Installation source", EditorStyles.label);

                        if (GUILayout.Button(new GUIContent("GitHub"), PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.GitHub ? SCPE_GUI.ToggleButtonLeftToggled : SCPE_GUI.ToggleButtonLeftNormal))
                        {
                            PostProcessingInstallation.Config = PostProcessingInstallation.Configuration.GitHub;
                        }
                        if (GUILayout.Button(new GUIContent("Package Manager"), PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.PackageManager ? SCPE_GUI.ToggleButtonRightToggled : SCPE_GUI.ToggleButtonRightNormal))
                        {
                            PostProcessingInstallation.Config = PostProcessingInstallation.Configuration.PackageManager;
                        }
                    }
#else
                    PostProcessingInstallation.Config = PostProcessingInstallation.Configuration.GitHub;
#endif

                    using (new EditorGUILayout.HorizontalScope())
                    {
                        if (PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.GitHub)
                        {
                            if (SCPE_GUI.DrawActionBox(string.IsNullOrEmpty(PostProcessingInstallation.PACKAGE_PATH) ? "Download" : "Install", EditorGUIUtility.IconContent("BuildSettings.Standalone.Small").image))
                            {
                                //Download
                                if (PostProcessingInstallation.PACKAGE_PATH.Contains(".unitypackage") == false)
                                {
                                    Application.OpenURL(PostProcessingInstallation.PP_DOWNLOAD_URL);
                                    if (EditorUtility.DisplayDialog("Post Processing Stack download", "Once the file has been downloaded, locate the file path and install it", "Browse"))
                                    {
                                        PostProcessingInstallation.PACKAGE_PATH = EditorUtility.OpenFilePanel("Package download location", "", "unitypackage");
                                    }
                                }
                                //Install
                                else
                                {
                                    PostProcessingInstallation.InstallPackage();
                                }
                            }
                        }
                        else
                        {
                            if (SCPE_GUI.DrawActionBox("Install", EditorGUIUtility.IconContent("BuildSettings.Standalone.Small").image))
                            {
                                PostProcessingInstallation.InstallPackage();
                            }
                        }
                    }

                    EditorGUILayout.Space();

                    if (PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.GitHub)
                    {
                        using (new EditorGUILayout.HorizontalScope())
                        {
                            EditorGUILayout.LabelField(new GUIContent(" Package location", EditorGUIUtility.IconContent("d_UnityLogo").image));

                            EditorGUILayout.TextField(PostProcessingInstallation.PACKAGE_PATH, SCPE_GUI.PathField, GUILayout.MaxWidth(180f));

                            if (GUILayout.Button("...", GUILayout.MaxWidth(30f)))
                            {
                                PostProcessingInstallation.PACKAGE_PATH = EditorUtility.OpenFilePanel("Package download location", "", "unitypackage");
                            }
                        }
                    }
                    else
                    {
                    }
                } //End if-installed

                EditorGUILayout.Space();
            }


            //Validate for errors before allowing to continue
            hasError = !UnityVersionCheck.COMPATIBLE;
            //hasError = !Installer.IS_CORRECT_BASE_FOLDER;
            hasError = (PostProcessingInstallation.IS_INSTALLED == false);
        }