private void AddEvent(double startTime, int maxDepth, float xOffset, int depthOffset, int index, EventCPU[] events, ContainerControl parent) { EventCPU e = events[index]; double length = e.End - e.Start; double scale = 100.0; float x = (float)((e.Start - startTime) * scale); float width = (float)(length * scale); var control = new Timeline.Event(x + xOffset, e.Depth + depthOffset, width) { Name = e.Name, TooltipText = string.Format("{0}, {1} ms", e.Name, ((int)(length * 1000.0) / 1000.0f)), Parent = parent, }; // Spawn sub events int childrenDepth = e.Depth + 1; if (childrenDepth <= maxDepth) { while (++index < events.Length) { int subDepth = events[index].Depth; if (subDepth <= e.Depth) { break; } if (subDepth == childrenDepth) { AddEvent(startTime, maxDepth, xOffset, depthOffset, index, events, parent); } } } }
public bool SkipEvent(ref EventCPU e) { return(e.Start < Start || e.Start > End); }
public ViewRange(ref EventCPU e) { Start = e.Start - MinEventTimeMs; End = e.End + MinEventTimeMs; }