diff --git a/profiler/src/profiler/TracyView.hpp b/profiler/src/profiler/TracyView.hpp index ed562b63..3ca96e6f 100644 --- a/profiler/src/profiler/TracyView.hpp +++ b/profiler/src/profiler/TracyView.hpp @@ -519,6 +519,8 @@ private: int m_flameMode = 0; bool m_flameSort = false; bool m_flameRunningTime = false; + bool m_flameExternal = true; + bool m_flameExternalTail = true; int m_statSampleLocation = 2; bool m_statHideUnknown = true; bool m_showAllSymbols = false; diff --git a/profiler/src/profiler/TracyView_FlameGraph.cpp b/profiler/src/profiler/TracyView_FlameGraph.cpp index 4d7dd0dc..4e73b7d2 100644 --- a/profiler/src/profiler/TracyView_FlameGraph.cpp +++ b/profiler/src/profiler/TracyView_FlameGraph.cpp @@ -639,6 +639,19 @@ void View::DrawFlameGraph() assert( !m_flameRunningTime ); } } + else + { + ImGui::SameLine(); + ImGui::SeparatorEx( ImGuiSeparatorFlags_Vertical ); + ImGui::SameLine(); + ImGui::Text( ICON_FA_SHIELD_HALVED "External" ); + ImGui::SameLine(); + if( ImGui::Checkbox( "Frames", &m_flameExternal ) ) m_flameGraphInvariant.Reset(); + ImGui::SameLine(); + if( m_flameExternal ) ImGui::BeginDisabled(); + if( ImGui::Checkbox( "Tails", &m_flameExternalTail ) ) m_flameGraphInvariant.Reset(); + if( m_flameExternal ) ImGui::EndDisabled(); + } auto& td = m_worker.GetThreadData(); auto expand = ImGui::TreeNode( ICON_FA_SHUFFLE " Visible threads:" );