public void AddFrameRecords <FrameAggregate>(IFrameDebugProvider provider, IEnumerable <IFrameRecord> records) where FrameAggregate : IFrameAggregate, new() { if (!m_RecordingEnabled) { return; } AddFrameDebugProvider(provider); FrameAggregateSet aggregates; int providerIdentifier = provider.GetUniqueIdentifier(); if (!m_FrameAggregates.TryGetValue(providerIdentifier, out aggregates)) { aggregates = FrameAggregateSet.Create(); m_FrameAggregates.Add(providerIdentifier, aggregates); } Type aggregateType = typeof(FrameAggregate); FrameAggregateInfo aggregateInfo; if (!aggregates.aggregates.TryGetValue(aggregateType, out aggregateInfo)) { aggregateInfo = FrameAggregateInfo.Create <FrameAggregate>(); aggregates.aggregates.Add(aggregateType, aggregateInfo); } aggregateInfo.pendingRecords.AddRange(records); }
public void AddFrameDebugProvider(IFrameDebugProvider provider) { if (!m_RecordingEnabled) { return; } if (!m_ProviderInfos.Any(info => info.uniqueIdentifier == provider.GetUniqueIdentifier())) { m_ProviderInfos.Add(new FrameDebugProviderInfo() { uniqueIdentifier = provider.GetUniqueIdentifier(), displayName = provider.GetDisplayName(), provider = provider }); } }
public static FrameDebugProviderInfo CreateFromProvider(IFrameDebugProvider provider) { return(new FrameDebugProviderInfo() { uniqueIdentifier = provider.GetUniqueIdentifier(), displayName = provider.GetDisplayName(), provider = provider }); }
public void RemoveFrameDebugProvider(IFrameDebugProvider provider) { int index = m_ProviderInfos.FindIndex(info => info.uniqueIdentifier == provider.GetUniqueIdentifier()); if (index >= 0) { FrameDebugProviderInfo info = m_ProviderInfos[index]; info.provider = null; m_ProviderInfos[index] = info; } m_Selection.RemoveAll(selected => selected.providerInfo.provider == provider); }