unity/EditorPlugin/SinceUnity.2022.3/Profiler/Adapters/UnityApiBasedAdapters/UnityApiRawFrameDataViewAdapter.cs (62 lines of code) (raw):

#nullable enable using JetBrains.Rider.Unity.Editor.Profiler.Adapters.Interfaces; using UnityEditor.Profiling; namespace JetBrains.Rider.Unity.Editor.Profiler.Adapters.UnityApiBasedAdapters { public class UnityApiRawFrameDataViewAdapter : IRawFrameDataViewAdapter { private readonly RawFrameDataView? myRawFrameDataView; private readonly int myGCAllocMarkerId; public UnityApiRawFrameDataViewAdapter(RawFrameDataView rawFrameDataView) { if (rawFrameDataView.valid) { myRawFrameDataView = rawFrameDataView; myGCAllocMarkerId = rawFrameDataView.GetMarkerId("GC.Alloc"); } else { myRawFrameDataView = null; myGCAllocMarkerId = -1; } } public void Dispose() { myRawFrameDataView?.Dispose(); } public bool Valid => myRawFrameDataView?.valid ?? false; public long GetAllocSize(int sampleIndex) { if (myGCAllocMarkerId == -1 || myRawFrameDataView == null) return 0; var sampleMetadataCount = myRawFrameDataView.GetSampleMetadataCount(sampleIndex); if (sampleMetadataCount == 0) return 0; var sampleMarkerId = GetSampleMarkerId(sampleIndex); return sampleMarkerId != myGCAllocMarkerId ? 0 : myRawFrameDataView.GetSampleMetadataAsLong(sampleIndex, 0); } public double GetSampleTimeMs(int sampleIndex) { return myRawFrameDataView?.GetSampleTimeMs(sampleIndex) ?? -1; } public int GetSampleMarkerId(int index) { return myRawFrameDataView?.GetSampleMarkerId(index) ?? -1; } public int GetSampleChildrenCount(int index) { return myRawFrameDataView?.GetSampleChildrenCount(index) ?? -1; } public string GetSampleName(int index) { return myRawFrameDataView?.GetSampleName(index) ?? string.Empty; } public int SampleCount => myRawFrameDataView?.sampleCount ?? -1; public int ThreadIndex => myRawFrameDataView?.threadIndex ?? -1; public string ThreadName => myRawFrameDataView?.threadName ?? string.Empty; public double FrameStartTimeMs => myRawFrameDataView?.frameStartTimeMs ?? -1; public float FrameTimeMs => myRawFrameDataView?.frameTimeMs ?? -1; } }