mirror of
https://github.com/wolfpld/tracy.git
synced 2024-11-30 01:04:36 +00:00
Don't draw off-screen plots.
This commit is contained in:
parent
cd7a1cffe8
commit
9fc14d2faf
@ -1055,7 +1055,7 @@ void View::DrawZones()
|
||||
|
||||
if( m_drawPlots )
|
||||
{
|
||||
offset = DrawPlots( offset, pxns, wpos, hover );
|
||||
offset = DrawPlots( offset, pxns, wpos, hover, yMin, yMax );
|
||||
}
|
||||
|
||||
const auto scrollPos = ImGui::GetScrollY();
|
||||
@ -2206,7 +2206,7 @@ int View::DrawLocks( uint64_t tid, bool hover, double pxns, const ImVec2& wpos,
|
||||
|
||||
enum { PlotHeight = 100 };
|
||||
|
||||
int View::DrawPlots( int offset, double pxns, const ImVec2& wpos, bool hover )
|
||||
int View::DrawPlots( int offset, double pxns, const ImVec2& wpos, bool hover, float yMin, float yMax )
|
||||
{
|
||||
enum { MaxPoints = 512 };
|
||||
float tmpvec[MaxPoints*2];
|
||||
@ -2221,10 +2221,12 @@ int View::DrawPlots( int offset, double pxns, const ImVec2& wpos, bool hover )
|
||||
for( const auto& v : m_worker.GetPlots() )
|
||||
{
|
||||
if( !Visible( v ) ) continue;
|
||||
|
||||
assert( !v->data.empty() );
|
||||
|
||||
bool& showFull = ShowFull( v );
|
||||
|
||||
auto yPos = wpos.y + offset;
|
||||
if( yPos + ty >= yMin && yPos <= yMax )
|
||||
{
|
||||
if( showFull )
|
||||
{
|
||||
draw->AddTriangleFilled( wpos + ImVec2( to/2, offset + to/2 ), wpos + ImVec2( ty - to/2, offset + to/2 ), wpos + ImVec2( ty * 0.5, offset + to/2 + th ), 0xFF44DDDD );
|
||||
@ -2265,10 +2267,14 @@ int View::DrawPlots( int offset, double pxns, const ImVec2& wpos, bool hover )
|
||||
|
||||
ImGui::EndTooltip();
|
||||
}
|
||||
}
|
||||
|
||||
offset += ty;
|
||||
|
||||
if( showFull )
|
||||
{
|
||||
auto yPos = wpos.y + offset;
|
||||
if( yPos + PlotHeight >= yMin && yPos <= yMax )
|
||||
{
|
||||
const auto& vec = v->data;
|
||||
auto it = std::lower_bound( vec.begin(), vec.end(), m_zvStart - m_worker.GetDelay(), [] ( const auto& l, const auto& r ) { return l.time < r; } );
|
||||
@ -2387,6 +2393,11 @@ int View::DrawPlots( int offset, double pxns, const ImVec2& wpos, bool hover )
|
||||
draw->AddLine( wpos + ImVec2( 0, offset + ty - 1 ), wpos + ImVec2( w, offset + ty - 1 ), 0x8844DDDD );
|
||||
offset += ty;
|
||||
}
|
||||
else
|
||||
{
|
||||
offset += PlotHeight;
|
||||
}
|
||||
}
|
||||
offset += 0.2 * ty;
|
||||
}
|
||||
|
||||
|
@ -69,7 +69,7 @@ private:
|
||||
int DrawZoneLevel( const Vector<ZoneEvent*>& vec, bool hover, double pxns, const ImVec2& wpos, int offset, int depth );
|
||||
int DrawGpuZoneLevel( const Vector<GpuEvent*>& vec, bool hover, double pxns, const ImVec2& wpos, int offset, int depth, uint64_t thread );
|
||||
int DrawLocks( uint64_t tid, bool hover, double pxns, const ImVec2& wpos, int offset, LockHighlight& highlight, float yMin, float yMax );
|
||||
int DrawPlots( int offset, double pxns, const ImVec2& wpos, bool hover );
|
||||
int DrawPlots( int offset, double pxns, const ImVec2& wpos, bool hover, float yMin, float yMax );
|
||||
void DrawPlotPoint( const ImVec2& wpos, float x, float y, int offset, uint32_t color, bool hover, bool hasPrev, double val, double prev, bool merged );
|
||||
void DrawOptions();
|
||||
void DrawMessages();
|
||||
|
Loading…
Reference in New Issue
Block a user