mirror of
https://github.com/wolfpld/tracy
synced 2025-05-01 21:23:52 +00:00
Build samples draw list only if visible.
This commit is contained in:
parent
a9ee4c499e
commit
f48415315a
@ -318,8 +318,8 @@ void TimelineItemThread::Preprocess( const TimelineContext& ctx, TaskDispatch& t
|
|||||||
m_hasSamples = false;
|
m_hasSamples = false;
|
||||||
if( vd.drawSamples && !m_thread->samples.empty() )
|
if( vd.drawSamples && !m_thread->samples.empty() )
|
||||||
{
|
{
|
||||||
td.Queue( [this, &ctx, visible] {
|
td.Queue( [this, &ctx, visible, yPos] {
|
||||||
PreprocessSamples( ctx, m_thread->samples, visible );
|
PreprocessSamples( ctx, m_thread->samples, visible, yPos );
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -532,11 +532,14 @@ void TimelineItemThread::PreprocessContextSwitches( const TimelineContext& ctx,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TimelineItemThread::PreprocessSamples( const TimelineContext& ctx, const Vector<SampleData>& vec, bool visible )
|
void TimelineItemThread::PreprocessSamples( const TimelineContext& ctx, const Vector<SampleData>& vec, bool visible, int yPos )
|
||||||
{
|
{
|
||||||
const auto vStart = ctx.vStart;
|
const auto vStart = ctx.vStart;
|
||||||
const auto vEnd = ctx.vEnd;
|
const auto vEnd = ctx.vEnd;
|
||||||
const auto nspx = ctx.nspx;
|
const auto nspx = ctx.nspx;
|
||||||
|
const auto ty = ctx.ty;
|
||||||
|
const auto ostep = ty + 1;
|
||||||
|
const auto pos = yPos + ostep;
|
||||||
|
|
||||||
const auto MinVis = 5 * GetScale();
|
const auto MinVis = 5 * GetScale();
|
||||||
const auto MinVisNs = int64_t( round( MinVis * nspx ) );
|
const auto MinVisNs = int64_t( round( MinVis * nspx ) );
|
||||||
@ -549,6 +552,12 @@ void TimelineItemThread::PreprocessSamples( const TimelineContext& ctx, const Ve
|
|||||||
m_hasSamples = true;
|
m_hasSamples = true;
|
||||||
if( !visible ) return;
|
if( !visible ) return;
|
||||||
|
|
||||||
|
const auto ty0375 = pos + round( ty * 0.375f );
|
||||||
|
const auto ty02 = round( ty * 0.2f );
|
||||||
|
const auto y0 = ty0375 - ty02 - 3;
|
||||||
|
const auto y1 = ty0375 + ty02 - 1;
|
||||||
|
if( y0 > ctx.yMax || y1 < ctx.yMin ) return;
|
||||||
|
|
||||||
while( it < itend )
|
while( it < itend )
|
||||||
{
|
{
|
||||||
auto next = it + 1;
|
auto next = it + 1;
|
||||||
|
@ -43,7 +43,7 @@ private:
|
|||||||
int PreprocessZoneLevel( const TimelineContext& ctx, const V& vec, int depth, bool visible );
|
int PreprocessZoneLevel( const TimelineContext& ctx, const V& vec, int depth, bool visible );
|
||||||
|
|
||||||
void PreprocessContextSwitches( const TimelineContext& ctx, const ContextSwitch& ctxSwitch, bool visible );
|
void PreprocessContextSwitches( const TimelineContext& ctx, const ContextSwitch& ctxSwitch, bool visible );
|
||||||
void PreprocessSamples( const TimelineContext& ctx, const Vector<SampleData>& vec, bool visible );
|
void PreprocessSamples( const TimelineContext& ctx, const Vector<SampleData>& vec, bool visible, int yPos );
|
||||||
void PreprocessMessages( const TimelineContext& ctx, const Vector<short_ptr<MessageData>>& vec, uint64_t tid, bool visible, int yPos );
|
void PreprocessMessages( const TimelineContext& ctx, const Vector<short_ptr<MessageData>>& vec, uint64_t tid, bool visible, int yPos );
|
||||||
|
|
||||||
const ThreadData* m_thread;
|
const ThreadData* m_thread;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user