mirror of
https://github.com/wolfpld/tracy.git
synced 2024-11-30 09:14:36 +00:00
Don't draw many illegible plot points.
This commit is contained in:
parent
e6baee2bf9
commit
532bf19efa
@ -3922,22 +3922,29 @@ int View::DrawPlots( int offset, double pxns, const ImVec2& wpos, bool hover, fl
|
|||||||
}
|
}
|
||||||
pdqsort_branchless( tmpvec, dst );
|
pdqsort_branchless( tmpvec, dst );
|
||||||
|
|
||||||
draw->AddLine( wpos + ImVec2( x1, offset + PlotHeight - ( tmpvec[0] - min ) * revrange * PlotHeight ), wpos + ImVec2( x1, offset + PlotHeight - ( dst[-1] - min ) * revrange * PlotHeight ), 0xFF44DDDD );
|
if( rsz > MaxPoints )
|
||||||
|
|
||||||
auto vit = tmpvec;
|
|
||||||
while( vit != dst )
|
|
||||||
{
|
{
|
||||||
auto vrange = std::upper_bound( vit, dst, *vit + 3.0 / ( revrange * PlotHeight ), [] ( const auto& l, const auto& r ) { return l < r; } );
|
draw->AddLine( wpos + ImVec2( x1, offset + PlotHeight - ( tmpvec[0] - min ) * revrange * PlotHeight ), wpos + ImVec2( x1, offset + PlotHeight - ( dst[-1] - min ) * revrange * PlotHeight ), 0xFF44DDDD, 4.f );
|
||||||
assert( vrange > vit );
|
}
|
||||||
if( std::distance( vit, vrange ) == 1 )
|
else
|
||||||
|
{
|
||||||
|
draw->AddLine( wpos + ImVec2( x1, offset + PlotHeight - ( tmpvec[0] - min ) * revrange * PlotHeight ), wpos + ImVec2( x1, offset + PlotHeight - ( dst[-1] - min ) * revrange * PlotHeight ), 0xFF44DDDD );
|
||||||
|
|
||||||
|
auto vit = tmpvec;
|
||||||
|
while( vit != dst )
|
||||||
{
|
{
|
||||||
DrawPlotPoint( wpos, x1, PlotHeight - ( *vit - min ) * revrange * PlotHeight, offset, 0xFF44DDDD, hover, false, *vit, 0, false, v->type, PlotHeight );
|
auto vrange = std::upper_bound( vit, dst, *vit + 3.0 / ( revrange * PlotHeight ), [] ( const auto& l, const auto& r ) { return l < r; } );
|
||||||
|
assert( vrange > vit );
|
||||||
|
if( std::distance( vit, vrange ) == 1 )
|
||||||
|
{
|
||||||
|
DrawPlotPoint( wpos, x1, PlotHeight - ( *vit - min ) * revrange * PlotHeight, offset, 0xFF44DDDD, hover, false, *vit, 0, false, v->type, PlotHeight );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DrawPlotPoint( wpos, x1, PlotHeight - ( *vit - min ) * revrange * PlotHeight, offset, 0xFF44DDDD, hover, false, *vit, 0, true, v->type, PlotHeight );
|
||||||
|
}
|
||||||
|
vit = vrange;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
DrawPlotPoint( wpos, x1, PlotHeight - ( *vit - min ) * revrange * PlotHeight, offset, 0xFF44DDDD, hover, false, *vit, 0, true, v->type, PlotHeight );
|
|
||||||
}
|
|
||||||
vit = vrange;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
prevy = it - 1;
|
prevy = it - 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user