void OnGUI_Execute(List <GUIAction> actions)
        {
            foreach (var action in actions)
            {
                switch (action.kind)
                {
                case GUIActionKind.OpenSelectedAsset:
                    OpenAsset(m_SelectedAsset);
                    break;

                case GUIActionKind.LoadAssetMetaData:
                    m_AssetMetadata = ShaderAnalysisUtils.LoadAssetMetadatasFor(m_CurrentPlatform);
                    break;

                case GUIActionKind.LoadAssetReferenceMetaData:
                    m_AssetMetadataReference =
                        ShaderAnalysisUtils.LoadAssetMetadatasFor(m_CurrentPlatform, referenceFolder);
                    break;

                case GUIActionKind.BuildReportJob:
                {
                    m_CurrentJob = action.jobBuilder();
                    if (m_CurrentJob != null)
                    {
                        m_JobAssets[m_CurrentJob] = action.asset;
                        m_CurrentJob.OnComplete(OnBuildReportJobComplete);
                    }
                    break;
                }

                case GUIActionKind.ExportReport:
                {
                    var assetGUID          = ShaderAnalysisUtils.CalculateGUIDFor(action.asset);
                    var report             = m_AssetMetadata.GetReport(assetGUID);
                    var tempReportFile     = ShaderAnalysisUtils.GetTemporaryReportFile(action.asset, m_CurrentPlatform);
                    var tempReportFileName = ExporterUtilities.ChangeExtensionFor(m_ReportExporterIndex, tempReportFile.FullName);
                    ExporterUtilities.Export(m_ReportExporterIndex, report, tempReportFileName);
                    Application.OpenURL(tempReportFileName);
                    break;
                }

                case GUIActionKind.SetAsReference:
                    SetAsReference(m_CurrentPlatform, action.assetGUID, action.report);
                    break;

                case GUIActionKind.ExportDiffReport:
                {
                    var diff                 = ShaderAnalysisUtils.DiffReports(action.report, action.reportReference);
                    var exportFile           = ShaderAnalysisUtils.GetTemporaryDiffFile(action.assetGUID, m_CurrentPlatform);
                    var exportReportFileName = ExporterUtilities.ChangeExtensionFor(m_ReportExporterIndex, exportFile.FullName);
                    ExporterUtilities.ExportDiff(m_ReportDiffExporterIndex, diff, exportReportFileName);
                    Application.OpenURL(exportReportFileName);
                    break;
                }
                }
            }
        }