1
0
mirror of https://github.com/wolfpld/tracy.git synced 2025-03-20 07:40:02 +08:00

Implement setting client parameters from server.

This commit is contained in:
Bartosz Taudul
2019-11-25 23:59:48 +01:00
parent c5c9dfb0c9
commit 4551553eb4
9 changed files with 135 additions and 2 deletions
+18
View File
@@ -3235,6 +3235,9 @@ bool Worker::Process( const QueueItem& ev )
case QueueType::TidToPid:
ProcessTidToPid( ev.tidToPid );
break;
case QueueType::ParamSetup:
ProcessParamSetup( ev.paramSetup );
break;
default:
assert( false );
break;
@@ -4575,6 +4578,12 @@ void Worker::ProcessTidToPid( const QueueTidToPid& ev )
m_data.tidToPid.emplace( ev.tid, ev.pid );
}
void Worker::ProcessParamSetup( const QueueParamSetup& ev )
{
CheckString( ev.name );
m_params.push_back( Parameter { ev.idx, StringRef( StringRef::Ptr, ev.name ), bool( ev.isBool ), ev.val } );
}
void Worker::MemAllocChanged( int64_t time )
{
const auto val = (double)m_data.memory.usage;
@@ -5670,4 +5679,13 @@ const char* Worker::UnpackFrameImage( const FrameImage& image )
return m_frameImageCompressedBuffer;
}
void Worker::SetParameter( size_t paramIdx, int32_t val )
{
assert( paramIdx < m_params.size() );
m_params[paramIdx].val = val;
const auto idx = uint64_t( m_params[paramIdx].idx );
const auto v = uint64_t( uint32_t( val ) );
Query( ServerQueryParameter, ( idx << 32 ) | val );
}
}