void OnResourceManagerDiagnosticEvent(ResourceManager.DiagnosticEventContext eventContext) { var hashCode = eventContext.OperationHandle.GetHashCode(); DiagnosticInfo diagInfo = null; if (eventContext.Type == ResourceManager.DiagnosticEventType.AsyncOperationDestroy) { if (m_cachedDiagnosticInfo.TryGetValue(hashCode, out diagInfo)) { m_cachedDiagnosticInfo.Remove(hashCode); } } else { if (!m_cachedDiagnosticInfo.TryGetValue(hashCode, out diagInfo)) { m_dependencyBuffer.Clear(); eventContext.OperationHandle.GetDependencies(m_dependencyBuffer); var depIds = new int[m_dependencyBuffer.Count]; for (int i = 0; i < depIds.Length; i++) { depIds[i] = m_dependencyBuffer[i].GetHashCode(); } m_cachedDiagnosticInfo.Add(hashCode, diagInfo = new DiagnosticInfo() { ObjectId = hashCode, DisplayName = eventContext.OperationHandle.DebugName, Dependencies = depIds }); } } if (diagInfo != null) { m_eventCollector.PostEvent(diagInfo.CreateEvent("ResourceManager", eventContext.Type, Time.frameCount, eventContext.EventValue)); } }
void OnResourceManagerDiagnosticEvent(ResourceManager.DiagnosticEventContext eventContext) { var hashCode = CalculateHashCode(eventContext.OperationHandle); DiagnosticInfo diagInfo = null; if (eventContext.Type == ResourceManager.DiagnosticEventType.AsyncOperationDestroy) { if (m_cachedDiagnosticInfo.TryGetValue(hashCode, out diagInfo)) { m_cachedDiagnosticInfo.Remove(hashCode); } } else { if (!m_cachedDiagnosticInfo.TryGetValue(hashCode, out diagInfo)) { List <AsyncOperationHandle> deps = new List <AsyncOperationHandle>(); eventContext.OperationHandle.GetDependencies(deps); var depIds = new int[deps.Count]; for (int i = 0; i < depIds.Length; i++) { depIds[i] = CalculateHashCode(deps[i]); } if (eventContext.OperationHandle.DebugName.Contains("CompletedOperation")) { string displayName = GenerateCompletedOperationDisplayName(eventContext.OperationHandle); m_cachedDiagnosticInfo.Add(hashCode, diagInfo = new DiagnosticInfo() { ObjectId = hashCode, DisplayName = displayName, Dependencies = depIds }); } else { m_cachedDiagnosticInfo.Add(hashCode, diagInfo = new DiagnosticInfo() { ObjectId = hashCode, DisplayName = eventContext.OperationHandle.DebugName, Dependencies = depIds }); } } } if (diagInfo != null) { DiagnosticEventCollectorSingleton.Instance.PostEvent(diagInfo.CreateEvent("ResourceManager", eventContext.Type, Time.frameCount, eventContext.EventValue)); } }
private void DiagnosticCallback(ResourceManager.DiagnosticEventContext context) { if (context.Type == ResourceManager.DiagnosticEventType.AsyncOperationReferenceCount) { if (context.Location == null) { return; } if (!context.Location.ToString().Equals(Location)) { return; } ReferenceCount = context.EventValue; } }