Exemple #1
0
        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);
                    }
                }
            }
        }
Exemple #2
0
 public bool SkipEvent(ref EventCPU e)
 {
     return(e.Start < Start || e.Start > End);
 }
Exemple #3
0
 public ViewRange(ref EventCPU e)
 {
     Start = e.Start - MinEventTimeMs;
     End   = e.End + MinEventTimeMs;
 }