protected override TreeViewItem BuildRoot() { int idForhiddenRoot = -1; int depthForHiddenRoot = -1; ProfileTreeViewItem root = new ProfileTreeViewItem(idForhiddenRoot, depthForHiddenRoot, "root", null); m_maxMedian = 0.0f; int index = 0; foreach (var marker in m_model.GetMarkers()) { if (m_profileAnalyserWindow.CheckMarkerValid(marker)) { var item = new ProfileTreeViewItem(index, 0, marker.name, marker); root.AddChild(item); float ms = item.data.msMedian; if (ms > m_maxMedian) { m_maxMedian = ms; } } // Maintain index to map to main markers index += 1; } return(root); }
protected override TreeViewItem BuildRoot() { int idForhiddenRoot = -1; int depthForHiddenRoot = -1; ProfileTreeViewItem root = new ProfileTreeViewItem(idForhiddenRoot, depthForHiddenRoot, "root", null); int depthFilter = m_profileAnalyserWindow.GetDepthFilter(); int index = 0; m_minDiff = float.MaxValue; m_maxDiff = 0.0f; foreach (var pairing in m_pairings) { if (depthFilter >= 0) { if (pairing.leftIndex >= 0 && m_left.GetMarkers()[pairing.leftIndex].minDepth != depthFilter) { index += 1; // Keep index mapping to main pairing list continue; } if (pairing.rightIndex >= 0 && m_right.GetMarkers()[pairing.rightIndex].minDepth != depthFilter) { index += 1; // Keep index mapping to main pairing list continue; } } var item = new ComparisonTreeViewItem(index, 0, pairing.name, pairing); root.AddChild(item); float diff = Diff(item); if (diff < m_minDiff) { m_minDiff = diff; } if (diff > m_maxDiff && diff < float.MaxValue) { m_maxDiff = diff; } index += 1; } return(root); }
void CellGUI(Rect cellRect, ProfileTreeViewItem item, MyColumns column, ref RowGUIArgs args) { // Center cell rect vertically (makes it easier to place controls, icons etc in the cells) CenterRectUsingSingleLineHeight(ref cellRect); switch (column) { case MyColumns.Name: { args.rowRect = cellRect; base.RowGUI(args); } break; case MyColumns.Average: EditorGUI.LabelField(cellRect, string.Format("{0:f2}", item.data.msFrameAverage)); break; case MyColumns.Depth: if (m_profileAnalyserWindow.GetDepthFilter() >= 0 || item.data.minDepth == item.data.maxDepth) { EditorGUI.LabelField(cellRect, string.Format("{0}", item.data.minDepth)); } else { EditorGUI.LabelField(cellRect, string.Format("{0}-{1}", item.data.minDepth, item.data.maxDepth)); } break; case MyColumns.Median: EditorGUI.LabelField(cellRect, string.Format("{0:f2}", item.data.msMedian)); break; case MyColumns.MedianBar: { float ms = item.data.msMedian; if (ms > 0.0f) { if (m_profileAnalyserWindow.DrawStart(cellRect)) { float w = cellRect.width * ms / m_maxMedian; m_profileAnalyserWindow.DrawBar(0, 1, w, cellRect.height - 1, m_profileAnalyserWindow.m_colorBar); m_profileAnalyserWindow.DrawEnd(); } } GUI.Label(cellRect, new GUIContent("", string.Format("{0:f2}", item.data.msMedian))); } break; case MyColumns.Min: EditorGUI.LabelField(cellRect, string.Format("{0:f2}", item.data.msMin)); break; case MyColumns.Max: EditorGUI.LabelField(cellRect, string.Format("{0:f2}", item.data.msMax)); break; case MyColumns.Range: EditorGUI.LabelField(cellRect, string.Format("{0:f2}", item.data.msMax - item.data.msMin)); break; case MyColumns.Count: EditorGUI.LabelField(cellRect, string.Format("{0}", item.data.count)); break; case MyColumns.CountAverage: EditorGUI.LabelField(cellRect, string.Format("{0}", item.data.count / m_model.GetFrameSummary().count)); break; case MyColumns.FirstFrame: if (!m_profileAnalyserWindow.IsProfilerWindowOpen()) { GUI.enabled = false; } if (GUI.Button(cellRect, new GUIContent(item.data.firstFrameIndex.ToString()))) { m_profileAnalyserWindow.SelectMarker(item.id); m_profileAnalyserWindow.JumpToFrame(item.data.firstFrameIndex); } GUI.enabled = true; break; case MyColumns.AtMedian: EditorGUI.LabelField(cellRect, string.Format("{0:f2}", item.data.msAtMedian)); break; } }