void MemRecordModeClick(object userData, string[] options, int selected) { m_SelectedMemRecordMode = (ProfilerMemoryRecordMode)selected; if (m_SelectedMemRecordMode != ProfilerMemoryRecordMode.None) { m_LastSelectedMemRecordMode = m_SelectedMemRecordMode; } ProfilerDriver.memoryRecordMode = m_SelectedMemRecordMode; }
void Awake() { if (!Profiler.supported) { return; } // Track enabled state per Editor session m_Recording = SessionState.GetBool(kProfilerEnabledSessionKey, true); // This event gets called every time when some other window is maximized and then unmaximized ProfilerDriver.enabled = m_Recording; m_SelectedMemRecordMode = ProfilerDriver.memoryRecordMode; }
void AllocationCallstacksToolbarItem() { if (Unsupported.IsDeveloperMode()) { bool toggled = m_SelectedMemRecordMode != ProfilerMemoryRecordMode.None; var oldToggleState = toggled; if (EditorGUILayout.DropDownToggle(ref toggled, Styles.recordCallstacks, EditorStyles.toolbarDropDownToggle)) { Rect rect = GUILayoutUtility.topLevel.GetLast(); string[] names = new string[] { L10n.Tr("None"), L10n.Tr("Managed Allocations") }; if (Unsupported.IsDeveloperMode()) { names = new string[] { L10n.Tr("None"), L10n.Tr("Managed Allocations"), L10n.Tr("All Allocations (fast)"), L10n.Tr("All Allocations (full)") }; } var enabled = new bool[names.Length]; for (int c = 0; c < names.Length; ++c) { enabled[c] = true; } var selected = new int[] { (int)m_SelectedMemRecordMode }; EditorUtility.DisplayCustomMenu(rect, names, enabled, selected, MemRecordModeClick, null); GUIUtility.ExitGUI(); } if (toggled != oldToggleState) { m_SelectedMemRecordMode = (m_SelectedMemRecordMode != ProfilerMemoryRecordMode.None) ? ProfilerMemoryRecordMode.None : (m_LastSelectedMemRecordMode == ProfilerMemoryRecordMode.None ? ProfilerMemoryRecordMode.ManagedAllocations : m_LastSelectedMemRecordMode); } } else { m_SelectedMemRecordMode = GUILayout.Toggle(m_SelectedMemRecordMode == ProfilerMemoryRecordMode.ManagedAllocations, Styles.recordCallstacks, EditorStyles.toolbarButton) ? ProfilerMemoryRecordMode.ManagedAllocations : ProfilerMemoryRecordMode.None; } }
static void OnProfilerWindowMemoryRecordModeChanged(ProfilerMemoryRecordMode memRecordMode) { EventService.Emit(nameof(EventType.UmpProfilerMemRecordModeChanged), (int)memRecordMode); }
public ProfilerWindow() { float[] relativeSizes = new float[] { 50f, 50f }; int[] minSizes = new int[] { 50, 50 }; this.m_VertSplit = new SplitterState(relativeSizes, minSizes, null); float[] singleArray2 = new float[] { 70f, 30f }; int[] numArray2 = new int[] { 450, 50 }; this.m_ViewSplit = new SplitterState(singleArray2, numArray2, null); float[] singleArray3 = new float[] { 20f, 80f }; int[] numArray3 = new int[] { 100, 100 }; this.m_NetworkSplit = new SplitterState(singleArray3, numArray3, null); this.m_AttachProfilerUI = new AttachProfilerUI(); this.m_GraphPos = Vector2.zero; this.m_PaneScroll = new Vector2[9]; this.m_PaneScroll_AudioChannels = Vector2.zero; this.m_PaneScroll_AudioDSP = Vector2.zero; this.m_PaneScroll_AudioClips = Vector2.zero; this.m_ViewType = ProfilerViewType.Hierarchy; this.m_CurrentArea = ProfilerArea.CPU; this.m_ShowDetailedMemoryPane = ProfilerMemoryView.Simple; this.m_ShowDetailedAudioPane = ProfilerAudioView.Stats; this.m_ShowInactiveDSPChains = false; this.m_HighlightAudibleDSPChains = true; this.m_DSPGraphZoomFactor = 1f; this.m_CurrentFrame = -1; this.m_LastFrameFromTick = -1; this.m_PrevLastFrame = -1; this.m_LastAudioProfilerFrame = -1; this.m_ChartOldMax = new float[] { -1f, -1f }; this.m_ChartMaxClamp = 70000f; this.m_TimelineViewDetail = false; this.m_GatherObjectReferences = true; this.m_AudioProfilerGroupView = null; this.m_AudioProfilerClipView = null; this.m_SelectedMemRecordMode = ProfilerMemoryRecordMode.None; this.s_CheckMark = '✔'; this.msgNames = new string[] { "UserMessage", "ObjectDestroy", "ClientRpc", "ObjectSpawn", "Owner", "Command", "LocalPlayerTransform", "SyncEvent", "SyncVars", "SyncList", "ObjectSpawnScene", "NetworkInfo", "SpawnFinished", "ObjectHide", "CRC", "ClientAuthority" }; this.msgFoldouts = new bool[] { true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false }; }
private void MemRecordModeClick(object userData, string[] options, int selected) { this.m_SelectedMemRecordMode = (ProfilerMemoryRecordMode) selected; ProfilerDriver.memoryRecordMode = this.m_SelectedMemRecordMode; }
private void Awake() { if (Profiler.supported) { this.m_Recording = SessionState.GetBool("ProfilerEnabled", true); Profiler.enabled = this.m_Recording; this.m_SelectedMemRecordMode = ProfilerDriver.memoryRecordMode; } }