internal void OnGUI()
{
if (!FrameDebuggerWindow.ShowFrameDebuggerWindowValidate())
{
EditorGUILayout.HelpBox("Frame Debugger requires a Pro license", MessageType.Warning, true);
return;
}
FrameDebuggerEvent[] frameEvents = FrameDebuggerUtility.GetFrameEvents();
if (this.m_TreeViewState == null)
{
this.m_TreeViewState = new TreeViewState();
}
if (this.m_Tree == null)
{
this.m_Tree = new FrameDebuggerTreeView(frameEvents, this.m_TreeViewState, this, default(Rect));
this.m_FrameEventsHash = FrameDebuggerUtility.eventsHash;
this.m_Tree.m_DataSource.SetExpandedWithChildren(this.m_Tree.m_DataSource.root, true);
}
if (FrameDebuggerUtility.eventsHash != this.m_FrameEventsHash)
{
this.m_Tree.m_DataSource.SetEvents(frameEvents);
this.m_FrameEventsHash = FrameDebuggerUtility.eventsHash;
}
int limit = FrameDebuggerUtility.limit;
bool flag = this.DrawToolbar(frameEvents);
if (!FrameDebuggerUtility.enabled)
{
GUI.enabled = true;
if (!FrameDebuggerWindow.GraphicsSupportsFrameDebugger())
{
EditorGUILayout.HelpBox("Frame Debugger requires multi-threaded renderer. Usually Unity uses that; if it does not try starting with -force-gfx-mt command line argument.", MessageType.Warning, true);
}
EditorGUILayout.HelpBox("Frame Debugger lets you step through draw calls and see how exactly frame is rendered. Click Enable!", MessageType.Info, true);
}
else
{
float fixedHeight = EditorStyles.toolbar.fixedHeight;
Rect dragRect = new Rect(this.m_ListWidth, fixedHeight, 5f, base.position.height - fixedHeight);
dragRect = EditorGUIUtility.HandleHorizontalSplitter(dragRect, base.position.width, 200f, 200f);
this.m_ListWidth = dragRect.x;
Rect rect = new Rect(0f, fixedHeight, this.m_ListWidth, base.position.height - fixedHeight);
Rect rect2 = new Rect(this.m_ListWidth + 4f, fixedHeight + 4f, base.position.width - this.m_ListWidth - 8f, base.position.height - fixedHeight - 8f);
this.DrawEventsTree(rect);
EditorGUIUtility.DrawHorizontalSplitter(dragRect);
this.DrawCurrentEvent(rect2, frameEvents);
}
if (flag || limit != FrameDebuggerUtility.limit)
{
this.RepaintOnLimitChange();
}
if (this.m_RepaintFrames > 0)
{
this.m_Tree.SelectFrameEventIndex(FrameDebuggerUtility.limit);
this.RepaintAllNeededThings();
this.m_RepaintFrames--;
}
}