void SetProcessStep(Delighting.ProcessStep fromStep)
 {
     if ((int)fromStep < (int)m_FromProcessStep && fromStep != Delighting.ProcessStep.None || m_FromProcessStep == Delighting.ProcessStep.None)
     {
         m_FromProcessStep = fromStep;
     }
 }
        void UpdatePendingOperations()
        {
            m_UpdateRequested = false;
            if ((m_PendingOperations & PendingOperation.LoadInputFolder) != 0)
            {
                m_PendingOperations &= ~PendingOperation.LoadInputFolder;
                if (m_LoadAssetFolderOperation != null)
                {
                    Debug.LogWarning("A folder is already being loaded, ignoring request to load a folder");
                }
                else
                {
                    m_LoadAssetFolderOperation = m_Service.LoadInputFolderAsync(inputFolderPath);
                    m_LoadAssetFolderOperation.OnProgress(progress =>
                    {
                        loadingShow     = true;
                        loadingProgress = progress;
                        loadingContent  = string.Format("Loading folder: {0:P2}", progress);
                    });
                    m_LoadAssetFolderOperation.OnComplete(result =>
                    {
                        m_Service.Reset();
                        m_Service.SetInput(result);

                        m_FitToPreviewAfterProcess = true;

                        SetProcessStep(Delighting.ProcessStep.Gather);
                        pendingOperation |= PendingOperation.Process;
                    });
                    m_LoadAssetFolderOperation.OnError(e =>
                    {
                        loadingShow = false;
                        Debug.LogException(e);
                    });
                }
            }
            if ((m_PendingOperations & PendingOperation.Process) != 0 && m_ProcessOperation == null)
            {
                m_PendingOperations &= ~PendingOperation.Process;
                if (m_FromProcessStep != Delighting.ProcessStep.None)
                {
                    m_ProcessOperation = m_Service.ProcessAsync(new Delighting.ProcessArgs {
                        fromStep = m_FromProcessStep, calculateResult = false
                    });
                    m_FromProcessStep = Delighting.ProcessStep.None;

                    m_ProcessOperation.OnProgress(progress =>
                    {
                        loadingShow     = true;
                        loadingProgress = progress;
                        loadingContent  = string.Format("De-Lighting: {0:P2}", progress);
                    });
                    m_ProcessOperation.OnComplete(result =>
                    {
                        loadingShow     = false;
                        loadingProgress = 1;
                    });
                    m_ProcessOperation.OnError(e =>
                    {
                        loadingShow     = false;
                        loadingProgress = 1;
                        Debug.LogException(e);
                    });
                }
            }
        }