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. "); }
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); } } } }
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); }
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; } }
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); } } }
internal int GetMaxValue(EventDataSet e) { var stream = e.GetStream(m_MaxValueStream); return(stream == null ? 1 : Mathf.Max(10, (stream.maxValue / 10 + 1) * 10)); }