diff --git a/server/TracyView.cpp b/server/TracyView.cpp index f8a78175..da10405c 100644 --- a/server/TracyView.cpp +++ b/server/TracyView.cpp @@ -6588,6 +6588,8 @@ void View::DrawInfo() TextFocused( "Max counts:", RealToString( maxVal, true ) ); + ImGui::Checkbox( "###draw1", &m_frameSortData.drawAvgMed ); + ImGui::SameLine(); ImGui::ColorButton( "c1", ImVec4( 0xFF/255.f, 0x44/255.f, 0x44/255.f, 1.f ), ImGuiColorEditFlags_NoTooltip ); ImGui::SameLine(); ImGui::Text( "Average time" ); @@ -6720,31 +6722,34 @@ void View::DrawInfo() } } - float ta, tm; - if( m_frameSortData.logTime ) + if( m_frameSortData.drawAvgMed ) { - const auto ltmin = log10fast( tmin ); - const auto ltmax = log10fast( tmax ); + float ta, tm; + if( m_frameSortData.logTime ) + { + const auto ltmin = log10fast( tmin ); + const auto ltmax = log10fast( tmax ); - ta = ( log10fast( m_frameSortData.average ) - ltmin ) / float( ltmax - ltmin ) * numBins; - tm = ( log10fast( m_frameSortData.median ) - ltmin ) / float( ltmax - ltmin ) * numBins; - } - else - { - ta = ( m_frameSortData.average - tmin ) / float( tmax - tmin ) * numBins; - tm = ( m_frameSortData.median - tmin ) / float( tmax - tmin ) * numBins; - } - ta = round( ta ); - tm = round( tm ); + ta = ( log10fast( m_frameSortData.average ) - ltmin ) / float( ltmax - ltmin ) * numBins; + tm = ( log10fast( m_frameSortData.median ) - ltmin ) / float( ltmax - ltmin ) * numBins; + } + else + { + ta = ( m_frameSortData.average - tmin ) / float( tmax - tmin ) * numBins; + tm = ( m_frameSortData.median - tmin ) / float( tmax - tmin ) * numBins; + } + ta = round( ta ); + tm = round( tm ); - if( ta == tm ) - { - draw->AddLine( ImVec2( wpos.x + ta, wpos.y ), ImVec2( wpos.x + ta, wpos.y+Height-2 ), 0xFFFF88FF ); - } - else - { - draw->AddLine( ImVec2( wpos.x + ta, wpos.y ), ImVec2( wpos.x + ta, wpos.y+Height-2 ), 0xFF4444FF ); - draw->AddLine( ImVec2( wpos.x + tm, wpos.y ), ImVec2( wpos.x + tm, wpos.y+Height-2 ), 0xFFFF8844 ); + if( ta == tm ) + { + draw->AddLine( ImVec2( wpos.x + ta, wpos.y ), ImVec2( wpos.x + ta, wpos.y+Height-2 ), 0xFFFF88FF ); + } + else + { + draw->AddLine( ImVec2( wpos.x + ta, wpos.y ), ImVec2( wpos.x + ta, wpos.y+Height-2 ), 0xFF4444FF ); + draw->AddLine( ImVec2( wpos.x + tm, wpos.y ), ImVec2( wpos.x + tm, wpos.y+Height-2 ), 0xFFFF8844 ); + } } if( hover && ImGui::IsMouseHoveringRect( wpos + ImVec2( 2, 2 ), wpos + ImVec2( w-2, Height + round( ty * 1.5 ) ) ) ) diff --git a/server/TracyView.hpp b/server/TracyView.hpp index b5bd1a95..c2026569 100644 --- a/server/TracyView.hpp +++ b/server/TracyView.hpp @@ -396,6 +396,7 @@ private: bool logTime = true; int64_t numBins = -1; std::unique_ptr bins; + bool drawAvgMed = true; } m_frameSortData; };