示例#1
0
        public void EventDataSet_GetStream_ReturnsNullOnNonexistentStream()
        {
            EventDataSet testSet = new EventDataSet();

            Assert.IsNull(testSet.GetStream(1), "GetStream should return null when queried with a stream index greater than the count of total streams.");

            testSet.AddSample(2, 0, 2);

            Assert.IsNull(testSet.GetStream(1), "GetStream should return null when querying an uninitialized stream. ");
        }
示例#2
0
        public void EventDataSet_GetStream_SimpleGet()
        {
            EventDataSet testSet = new EventDataSet();

            testSet.AddSample(0, 0, 1);
            var soughtStream = testSet.m_Streams[0];

            Assert.AreEqual(soughtStream, testSet.GetStream(0), "Correct stream not returned by GetStream");
        }
        public override void Draw(EventDataSet dataSet, Rect rect, int startFrame, int frameCount, int inspectFrame, bool expanded, Material material, int maxValue)
        {
            if (dataSet == null)
            {
                return;
            }

            int endFrame = startFrame + frameCount;

            EventDataSetStream refStream = dataSet.GetStream(Stream);

            if (refStream != null)
            {
                foreach (GraphUtility.Segment s in GraphUtility.IterateSegments(refStream, startFrame, endFrame, IsContinuationOfSegment))
                {
                    if (s.data != 0)
                    {
                        float x = rect.xMin + GraphUtility.ValueToPixel(s.frameStart, startFrame, endFrame, rect.width);
                        float w = (rect.xMin + GraphUtility.ValueToPixel(s.frameEnd, startFrame, endFrame, rect.width)) - x;
                        EditorGUI.DrawRect(new Rect(x, rect.yMin, w, rect.height), GraphColor);
                    }
                }
            }

            EventDataSetStream loadStream = dataSet.GetStream(m_LoadStatusStream);

            if (loadStream != null)
            {
                foreach (GraphUtility.Segment s in GraphUtility.IterateSegments(loadStream, startFrame, endFrame, IsContinuationOfSegment))
                {
                    if (s.data == 0)
                    {
                        float x = rect.xMin + GraphUtility.ValueToPixel(s.frameStart, startFrame, endFrame, rect.width);
                        float w = (rect.xMin + GraphUtility.ValueToPixel(s.frameEnd, startFrame, endFrame, rect.width)) - x;
                        EditorGUI.DrawRect(new Rect(x, rect.yMin, w, rect.height), m_LoadColor);
                    }
                }
            }
        }
示例#4
0
        public override void Draw(EventDataSet dataSet, Rect rect, int startFrame, int frameCount, int inspectFrame, bool expanded, Material material, int maxValue)
        {
            if (dataSet == null || material == null)
            {
                return;
            }

            var stream = dataSet.GetStream(Stream);

            if (stream != null && stream.samples.Count > 0)
            {
                material.color = GraphColor;

                if (m_Mesh == null)
                {
                    m_Mesh = new Mesh();
                }
                m_Verts.Clear();
                m_Indices.Clear();
                var endTime = startFrame + frameCount;

                m_Bounds     = new Rect(rect);
                m_GridSize.x = m_Bounds.width / frameCount;
                m_GridSize.y = m_Bounds.height / maxValue;

                int previousFrameNumber = endTime;
                int currentFrame        = endTime;

                for (int i = stream.samples.Count - 1; i >= 0 && currentFrame > startFrame; --i)
                {
                    currentFrame = stream.samples[i].frame;
                    var frame = Mathf.Max(currentFrame, startFrame);
                    if (stream.samples[i].data > 0)
                    {
                        AddQuadToMesh(frame - startFrame, previousFrameNumber - startFrame, 0, stream.samples[i].data);
                    }
                    previousFrameNumber = frame;
                }

                if (m_Verts.Count > 0)
                {
                    m_Mesh.Clear(true);
                    m_Mesh.SetVertices(m_Verts);
                    m_Mesh.triangles = m_Indices.ToArray();
                    material.SetPass(0);
                    Graphics.DrawMeshNow(m_Mesh, Vector3.zero, Quaternion.identity);
                }
            }
        }
        public void EventDataPlayerSession_AddSample_SimpleRecordEventCase()
        {
            EventDataPlayerSession edps = new EventDataPlayerSession();

            DiagnosticEvent evt1 = CreateNewGenericEvent(ResourceManager.DiagnosticEventType.AsyncOperationReferenceCount, 0, 1);
            DiagnosticEvent evt2 = CreateNewGenericEvent(ResourceManager.DiagnosticEventType.AsyncOperationCreate, 0, 2);
            DiagnosticEvent evt3 = CreateNewGenericEvent(ResourceManager.DiagnosticEventType.AsyncOperationReferenceCount, 1, 1);

            bool entryCreated = false;

            edps.AddSample(evt1, true, ref entryCreated);
            Assert.IsTrue(entryCreated, "Either a new entry was supposed to be created, but was not, or the value of entryCreated was not properly updated.");

            edps.AddSample(evt2, true, ref entryCreated);
            Assert.IsFalse(entryCreated, "evt2: Either a new entry wasn't supposed to be created, but was, or the value of entryCreated was not properly updated.");

            edps.AddSample(evt3, true, ref entryCreated);
            Assert.IsFalse(entryCreated, "evt3: Either a new entry wasn't supposed to be created for, but was, or the value of entryCreated was not properly updated.");

            Assert.AreEqual(new List <DiagnosticEvent> {
                evt1, evt2
            }, edps.m_FrameEvents[0], "evt1 and evt2 were not properly added to m_FrameEvents");
            Assert.AreEqual(2, edps.m_EventCountDataSet.GetStreamValue(0, 0), "Value of the stream for m_EventCountDataSet was not properly set.");
            Assert.AreEqual(new List <DiagnosticEvent> {
                evt3
            }, edps.m_FrameEvents[1], "evt3 was not properly added to m_FrameEvents");
            Assert.IsTrue(edps.m_DataSets.ContainsKey(evt1.ObjectId), "The corresponding EventDataSet for evt1-3 was not added to m_DataSets");

            EventDataSet eds = null;

            bool edsFound = edps.m_DataSets.TryGetValue(evt1.ObjectId, out eds);

            Assert.IsTrue(edsFound);
            Assert.AreEqual(2, eds.GetStream((int)ResourceManager.DiagnosticEventType.AsyncOperationReferenceCount).samples.Count);
            Assert.AreEqual(1, eds.GetStream((int)ResourceManager.DiagnosticEventType.AsyncOperationCreate).samples.Count);
        }
示例#6
0
        public override void Draw(EventDataSet dataSet, Rect rect, int startFrame, int frameCount, int inspectFrame, bool expanded, Material material, int maxValue)
        {
            if (dataSet == null)
            {
                return;
            }

            var endTime = startFrame + frameCount;
            var stream  = dataSet.GetStream(Stream);

            if (stream != null)
            {
                var prevCol = UnityEngine.GUI.color;
                UnityEngine.GUI.color = GraphColor;
                if (expanded)
                {
                    var text      = new GUIContent(maxValue.ToString());
                    var size      = UnityEngine.GUI.skin.label.CalcSize(text);
                    var labelRect = new Rect(rect.xMin + 2, rect.yMin, size.x, size.y);
                    EditorGUI.LabelField(labelRect, text);
                    labelRect = new Rect(rect.xMax - size.x, rect.yMin, size.x, size.y);
                    EditorGUI.LabelField(labelRect, text);
                }

                if (inspectFrame != endTime)
                {
                    var val = stream.GetValue(inspectFrame);
                    if (val > 0)
                    {
                        var   text      = new GUIContent(m_LabelFunc(val));
                        var   size      = UnityEngine.GUI.skin.label.CalcSize(text);
                        var   x         = GraphUtility.ValueToPixel(inspectFrame, startFrame, endTime, rect.width);
                        float pixelVal  = GraphUtility.ValueToPixel(val, 0, maxValue, rect.height);
                        var   labelRect = new Rect(rect.xMin + x + 5, Mathf.Max(rect.yMin, rect.yMax - (pixelVal + size.y)), size.x, size.y);
                        UnityEngine.GUI.DrawTexture(labelRect, EditorGUIUtility.whiteTexture, ScaleMode.StretchToFill, true, 0, m_BgColor, 50, 5);
                        EditorGUI.LabelField(labelRect, text, UnityEngine.GUI.skin.label);
                    }
                }
                UnityEngine.GUI.color = prevCol;
            }
        }
示例#7
0
        public override void Draw(EventDataSet dataSet, Rect rect, int startFrame, int frameCount, int inspectFrame, bool expanded, Material material, int maxValue)
        {
            if (dataSet == null)
            {
                return;
            }

            var endTime = startFrame + frameCount;
            var stream  = dataSet.GetStream(Stream);

            if (stream != null)
            {
                for (int i = stream.samples.Count - 1; i >= 0; --i)
                {
                    var frame = stream.samples[i].frame;
                    if (frame < startFrame)
                    {
                        break;
                    }
                    EditorGUI.DrawRect(new Rect(rect.xMin + GraphUtility.ValueToPixel(frame, startFrame, endTime, rect.width), rect.yMin, 2, rect.height), stream.samples[i].data == 0 ? m_EndColor : GraphColor);
                }
            }
        }
示例#8
0
        internal int GetMaxValue(EventDataSet e)
        {
            var stream = e.GetStream(m_MaxValueStream);

            return(stream == null ? 1 : Mathf.Max(10, (stream.maxValue / 10 + 1) * 10));
        }