void InitIfNeeded() { if (m_Initialized) { return; } var cpuHierarchyColumns = new[] { HierarchyFrameDataView.columnName, HierarchyFrameDataView.columnTotalPercent, HierarchyFrameDataView.columnSelfPercent, HierarchyFrameDataView.columnCalls, HierarchyFrameDataView.columnGcMemory, HierarchyFrameDataView.columnTotalTime, HierarchyFrameDataView.columnSelfTime, HierarchyFrameDataView.columnWarningCount }; var gpuHierarchyColumns = new[] { HierarchyFrameDataView.columnName, HierarchyFrameDataView.columnTotalGpuPercent, HierarchyFrameDataView.columnDrawCalls, HierarchyFrameDataView.columnTotalGpuTime }; var profilerColumns = gpuView ? gpuHierarchyColumns : cpuHierarchyColumns; var defaultSortColumn = gpuView ? HierarchyFrameDataView.columnTotalGpuTime : HierarchyFrameDataView.columnTotalTime; var columns = CreateColumns(profilerColumns); var multiColumnHeaderStateData = SessionState.GetString(multiColumnHeaderStatePrefKey, ""); if (!string.IsNullOrEmpty(multiColumnHeaderStateData)) { try { var restoredHeaderState = JsonUtility.FromJson <MultiColumnHeaderState>(multiColumnHeaderStateData); if (restoredHeaderState != null) { m_MultiColumnHeaderState = restoredHeaderState; } } catch {} // Nevermind, we'll just fall back to the default } var headerState = CreateDefaultMultiColumnHeaderState(columns, defaultSortColumn); if (MultiColumnHeaderState.CanOverwriteSerializedFields(m_MultiColumnHeaderState, headerState)) { MultiColumnHeaderState.OverwriteSerializedFields(m_MultiColumnHeaderState, headerState); } var firstInit = m_MultiColumnHeaderState == null; m_MultiColumnHeaderState = headerState; var multiColumnHeader = new ProfilerFrameDataMultiColumnHeader(m_MultiColumnHeaderState, columns) { height = 25 }; if (firstInit) { multiColumnHeader.ResizeToFit(); } multiColumnHeader.visibleColumnsChanged += OnMultiColumnHeaderChanged; multiColumnHeader.sortingChanged += OnMultiColumnHeaderChanged; // Check if it already exists (deserialized from window layout file or scriptable object) if (m_TreeViewState == null) { m_TreeViewState = new TreeViewState(); } m_TreeView = new ProfilerFrameDataTreeView(m_TreeViewState, multiColumnHeader, cpuModule); m_TreeView.selectionChanged += OnMainTreeViewSelectionChanged; m_TreeView.searchChanged += OnMainTreeViewSearchChanged; m_TreeView.Reload(); m_SearchField = new SearchField(); m_SearchField.downOrUpArrowKeyPressed += m_TreeView.SetFocusAndEnsureSelectedItem; if (m_DetailedObjectsView == null) { m_DetailedObjectsView = new ProfilerDetailedObjectsView(detailedObjectsViewPrefKeyPrefix); } m_DetailedObjectsView.gpuView = gpuView; m_DetailedObjectsView.frameItemEvent += FrameItem; if (m_DetailedCallsView == null) { m_DetailedCallsView = new ProfilerDetailedCallsView(detailedCallsViewPrefKeyPrefix); m_DetailedCallsView.profilerSampleNameProvider = cpuModule; } m_DetailedCallsView.frameItemEvent += FrameItem; if (m_DetailedViewSpliterState == null || !m_DetailedViewSpliterState.IsValid()) { m_DetailedViewSpliterState = SplitterState.FromRelative(new[] { SessionState.GetFloat(splitter0StatePrefKey, 70f), SessionState.GetFloat(splitter1StatePrefKey, 30f) }, new[] { 450f, 50f }, null); } if (!m_Serialized) { m_DetailedViewType = (DetailedViewType)SessionState.GetInt(detailedViewTypeStatePrefKey, (int)DetailedViewType.None); } m_Serialized = true; m_Initialized = true; }
void InitIfNeeded() { if (m_Initialized) { return; } var cpuHierarchyColumns = new[] { HierarchyFrameDataView.columnName, HierarchyFrameDataView.columnTotalPercent, HierarchyFrameDataView.columnSelfPercent, HierarchyFrameDataView.columnCalls, HierarchyFrameDataView.columnGcMemory, HierarchyFrameDataView.columnTotalTime, HierarchyFrameDataView.columnSelfTime, HierarchyFrameDataView.columnWarningCount }; var gpuHierarchyColumns = new[] { HierarchyFrameDataView.columnName, HierarchyFrameDataView.columnTotalGpuPercent, HierarchyFrameDataView.columnDrawCalls, HierarchyFrameDataView.columnTotalGpuTime }; var profilerColumns = gpuView ? gpuHierarchyColumns : cpuHierarchyColumns; var defaultSortColumn = gpuView ? HierarchyFrameDataView.columnTotalGpuTime : HierarchyFrameDataView.columnTotalTime; var columns = CreateColumns(profilerColumns); var headerState = CreateDefaultMultiColumnHeaderState(columns, defaultSortColumn); if (MultiColumnHeaderState.CanOverwriteSerializedFields(m_MultiColumnHeaderState, headerState)) { MultiColumnHeaderState.OverwriteSerializedFields(m_MultiColumnHeaderState, headerState); } var firstInit = m_MultiColumnHeaderState == null; m_MultiColumnHeaderState = headerState; var multiColumnHeader = new ProfilerFrameDataMultiColumnHeader(m_MultiColumnHeaderState, columns) { height = 25 }; if (firstInit) { multiColumnHeader.ResizeToFit(); } // Check if it already exists (deserialized from window layout file or scriptable object) if (m_TreeViewState == null) { m_TreeViewState = new TreeViewState(); } m_TreeView = new ProfilerFrameDataTreeView(m_TreeViewState, multiColumnHeader); m_TreeView.selectionChanged += OnMainTreeViewSelectionChanged; m_TreeView.searchChanged += OnMainTreeViewSearchChanged; m_TreeView.Reload(); m_CpuProfilerOptions = SessionState.GetInt(k_CpuProfilerHierarchyViewOptionsPrefKey, m_CpuProfilerOptions); m_SearchField = new SearchField(); m_SearchField.downOrUpArrowKeyPressed += m_TreeView.SetFocusAndEnsureSelectedItem; if (m_DetailedObjectsView == null) { m_DetailedObjectsView = new ProfilerDetailedObjectsView(); } m_DetailedObjectsView.gpuView = gpuView; m_DetailedObjectsView.frameItemEvent += FrameItem; if (m_DetailedCallsView == null) { m_DetailedCallsView = new ProfilerDetailedCallsView(); } m_DetailedCallsView.frameItemEvent += FrameItem; if (m_DetailedViewSpliterState == null || m_DetailedViewSpliterState.relativeSizes == null || m_DetailedViewSpliterState.relativeSizes.Length == 0) { m_DetailedViewSpliterState = new SplitterState(new[] { 70f, 30f }, new[] { 450, 50 }, null); } m_Initialized = true; }
private void InitIfNeeded() { if (!this.m_Initialized) { ProfilerColumn[] array = new ProfilerColumn[] { ProfilerColumn.FunctionName, ProfilerColumn.TotalPercent, ProfilerColumn.SelfPercent, ProfilerColumn.Calls, ProfilerColumn.GCMemory, ProfilerColumn.TotalTime, ProfilerColumn.SelfTime, ProfilerColumn.WarningCount }; ProfilerColumn[] array2 = new ProfilerColumn[] { ProfilerColumn.FunctionName, ProfilerColumn.TotalGPUPercent, ProfilerColumn.DrawCalls, ProfilerColumn.TotalGPUTime }; ProfilerColumn[] profilerColumns = (!base.gpuView) ? array : array2; ProfilerColumn defaultSortColumn = (!base.gpuView) ? ProfilerColumn.TotalTime : ProfilerColumn.TotalGPUTime; ProfilerFrameDataMultiColumnHeader.Column[] columns = ProfilerFrameDataHierarchyView.CreateColumns(profilerColumns); MultiColumnHeaderState multiColumnHeaderState = ProfilerFrameDataHierarchyView.CreateDefaultMultiColumnHeaderState(columns, defaultSortColumn); if (MultiColumnHeaderState.CanOverwriteSerializedFields(this.m_MultiColumnHeaderState, multiColumnHeaderState)) { MultiColumnHeaderState.OverwriteSerializedFields(this.m_MultiColumnHeaderState, multiColumnHeaderState); } bool flag = this.m_MultiColumnHeaderState == null; this.m_MultiColumnHeaderState = multiColumnHeaderState; ProfilerFrameDataMultiColumnHeader profilerFrameDataMultiColumnHeader = new ProfilerFrameDataMultiColumnHeader(this.m_MultiColumnHeaderState, columns) { height = 25f }; if (flag) { profilerFrameDataMultiColumnHeader.ResizeToFit(); } if (this.m_TreeViewState == null) { this.m_TreeViewState = new TreeViewState(); } this.m_TreeView = new ProfilerFrameDataTreeView(this.m_TreeViewState, profilerFrameDataMultiColumnHeader); this.m_TreeView.selectionChanged += new ProfilerFrameDataTreeView.SelectionChangedCallback(this.OnMainTreeViewSelectionChanged); this.m_TreeView.searchChanged += new ProfilerFrameDataTreeView.SearchChangedCallback(this.OnMainTreeViewSearchChanged); this.m_SearchField = new SearchField(); this.m_SearchField.downOrUpArrowKeyPressed += new SearchField.SearchFieldCallback(this.m_TreeView.SetFocusAndEnsureSelectedItem); if (this.m_DetailedObjectsView == null) { this.m_DetailedObjectsView = new ProfilerDetailedObjectsView(); } this.m_DetailedObjectsView.gpuView = base.gpuView; this.m_DetailedObjectsView.frameItemEvent += new ProfilerDetailedObjectsView.FrameItemCallback(this.FrameItem); if (this.m_DetailedCallsView == null) { this.m_DetailedCallsView = new ProfilerDetailedCallsView(); } this.m_DetailedCallsView.frameItemEvent += new ProfilerDetailedCallsView.FrameItemCallback(this.FrameItem); if (this.m_DetailedViewSpliterState == null || this.m_DetailedViewSpliterState.relativeSizes == null || this.m_DetailedViewSpliterState.relativeSizes.Length == 0) { this.m_DetailedViewSpliterState = new SplitterState(new float[] { 70f, 30f }, new int[] { 450, 50 }, null); } this.m_Initialized = true; } }