diff --git a/server/TracyView.cpp b/server/TracyView.cpp index d3c2a50b..a9e9a00f 100644 --- a/server/TracyView.cpp +++ b/server/TracyView.cpp @@ -2803,6 +2803,9 @@ void View::DrawFindZone() ImGui::Text( "Time range: %s - %s (%s)", TimeToString( tmin ), TimeToString( tmax ), TimeToString( tmax - tmin ) ); const auto dt = double( tmax - tmin ); + const auto selThread = m_findZone.selThread; + const auto showThreads = m_findZone.showThreads; + const auto cumulateTime = m_findZone.cumulateTime; if( dt > 0 ) { @@ -2826,7 +2829,7 @@ void View::DrawFindZone() const auto s = std::min( m_findZone.highlight.start, m_findZone.highlight.end ); const auto e = std::max( m_findZone.highlight.start, m_findZone.highlight.end ); - if( m_findZone.selThread != m_findZone.Unselected ) + if( selThread != m_findZone.Unselected ) { if( m_findZone.logTime ) { @@ -2840,9 +2843,9 @@ void View::DrawFindZone() const auto bin = std::min( numBins - 1, int64_t( ( log10( timeSpan ) - tMinLog ) * idt ) ); bins[bin]++; binTime[bin] += timeSpan; - if( m_findZone.selThread == ( m_findZone.showThreads ? ev.thread : ( ev.zone->text.active ? ev.zone->text.idx : std::numeric_limits::max() ) ) ) + if( selThread == ( showThreads ? ev.thread : ( ev.zone->text.active ? ev.zone->text.idx : std::numeric_limits::max() ) ) ) { - if( m_findZone.cumulateTime ) selBin[bin] += timeSpan; else selBin[bin]++; + if( cumulateTime ) selBin[bin] += timeSpan; else selBin[bin]++; } if( timeSpan >= s && timeSpan <= e ) selectionTime += timeSpan; } @@ -2859,9 +2862,9 @@ void View::DrawFindZone() const auto bin = std::min( numBins - 1, int64_t( ( timeSpan - tmin ) * idt ) ); bins[bin]++; binTime[bin] += timeSpan; - if( m_findZone.selThread == ( m_findZone.showThreads ? ev.thread : ( ev.zone->text.active ? ev.zone->text.idx : std::numeric_limits::max() ) ) ) + if( selThread == ( showThreads ? ev.thread : ( ev.zone->text.active ? ev.zone->text.idx : std::numeric_limits::max() ) ) ) { - if( m_findZone.cumulateTime ) selBin[bin] += timeSpan; else selBin[bin]++; + if( cumulateTime ) selBin[bin] += timeSpan; else selBin[bin]++; } if( timeSpan >= s && timeSpan <= e ) selectionTime += timeSpan; } @@ -2905,7 +2908,7 @@ void View::DrawFindZone() } else { - if( m_findZone.selThread != m_findZone.Unselected ) + if( selThread != m_findZone.Unselected ) { if( m_findZone.logTime ) { @@ -2919,9 +2922,9 @@ void View::DrawFindZone() const auto bin = std::min( numBins - 1, int64_t( ( log10( timeSpan ) - tMinLog ) * idt ) ); bins[bin]++; binTime[bin] += timeSpan; - if( m_findZone.selThread == ( m_findZone.showThreads ? ev.thread : ( ev.zone->text.active ? ev.zone->text.idx : std::numeric_limits::max() ) ) ) + if( selThread == ( showThreads ? ev.thread : ( ev.zone->text.active ? ev.zone->text.idx : std::numeric_limits::max() ) ) ) { - if( m_findZone.cumulateTime ) selBin[bin] += timeSpan; else selBin[bin]++; + if( cumulateTime ) selBin[bin] += timeSpan; else selBin[bin]++; } } } @@ -2937,9 +2940,9 @@ void View::DrawFindZone() const auto bin = std::min( numBins - 1, int64_t( ( timeSpan - tmin ) * idt ) ); bins[bin]++; binTime[bin] += timeSpan; - if( m_findZone.selThread == ( m_findZone.showThreads ? ev.thread : ( ev.zone->text.active ? ev.zone->text.idx : std::numeric_limits::max() ) ) ) + if( selThread == ( showThreads ? ev.thread : ( ev.zone->text.active ? ev.zone->text.idx : std::numeric_limits::max() ) ) ) { - if( m_findZone.cumulateTime ) selBin[bin] += timeSpan; else selBin[bin]++; + if( cumulateTime ) selBin[bin] += timeSpan; else selBin[bin]++; } } } @@ -2981,7 +2984,7 @@ void View::DrawFindZone() int64_t timeTotal = binTime[0]; int64_t maxVal; - if( m_findZone.cumulateTime ) + if( cumulateTime ) { maxVal = binTime[0]; for( int i=1; i 0 ) { draw->AddLine( wpos + ImVec2( 2+i, Height-3 ), wpos + ImVec2( 2+i, Height-3 - log10( val + 1 ) * hAdj ), 0xFF22DDDD ); @@ -3064,7 +3067,7 @@ void View::DrawFindZone() const auto hAdj = double( Height - 4 ) / maxVal; for( int i=0; i 0 ) { draw->AddLine( wpos + ImVec2( 2+i, Height-3 ), wpos + ImVec2( 2+i, Height-3 - val * hAdj ), 0xFF22DDDD ); @@ -3282,6 +3285,10 @@ void View::DrawFindZone() auto& zones = m_worker.GetZonesForSourceLocation( m_findZone.match[m_findZone.selMatch] ).zones; auto sz = zones.size(); auto processed = m_findZone.processed; + const auto hmin = std::min( m_findZone.highlight.start, m_findZone.highlight.end ); + const auto hmax = std::max( m_findZone.highlight.start, m_findZone.highlight.end ); + const auto showThreads = m_findZone.showThreads; + const auto highlightActive = m_findZone.highlight.active; while( processed < sz ) { auto& ev = zones[processed]; @@ -3295,11 +3302,9 @@ void View::DrawFindZone() continue; } - if( m_findZone.highlight.active ) + if( highlightActive ) { - const auto s = std::min( m_findZone.highlight.start, m_findZone.highlight.end ); - const auto e = std::max( m_findZone.highlight.start, m_findZone.highlight.end ); - if( timespan < s || timespan > e ) + if( timespan < hmin || timespan > hmax ) { processed++; continue; @@ -3307,7 +3312,7 @@ void View::DrawFindZone() } processed++; - if( m_findZone.showThreads ) + if( showThreads ) { m_findZone.threads[ev.thread].push_back( ev.zone ); } @@ -3324,7 +3329,7 @@ void View::DrawFindZone() for( auto& v : m_findZone.threads ) { const char* hdrString; - if( m_findZone.showThreads ) + if( showThreads ) { hdrString = m_worker.GetThreadString( m_worker.DecompressThread( v.first ) ); }