diff --git a/client/TracyProfiler.cpp b/client/TracyProfiler.cpp index 7a594420..408de413 100644 --- a/client/TracyProfiler.cpp +++ b/client/TracyProfiler.cpp @@ -226,7 +226,9 @@ void Profiler::SendSourceLocation( uint64_t ptr ) item.srcloc.file = (uint64_t)srcloc->file; item.srcloc.function = (uint64_t)srcloc->function; item.srcloc.line = srcloc->line; - item.srcloc.color = srcloc->color; + item.srcloc.r = ( srcloc->color ) & 0xFF; + item.srcloc.g = ( srcloc->color >> 8 ) & 0xFF; + item.srcloc.b = ( srcloc->color >> 16 ) & 0xFF; s_token.ptr->enqueue( std::move( item ) ); } diff --git a/common/TracyQueue.hpp b/common/TracyQueue.hpp index 774de925..4093f3e9 100644 --- a/common/TracyQueue.hpp +++ b/common/TracyQueue.hpp @@ -59,7 +59,9 @@ struct QueueSourceLocation uint64_t function; // ptr uint64_t file; // ptr uint32_t line; - uint32_t color; + uint8_t r; + uint8_t g; + uint8_t b; }; struct QueueZoneText diff --git a/server/TracyView.cpp b/server/TracyView.cpp index 23c13654..92e3eb8f 100644 --- a/server/TracyView.cpp +++ b/server/TracyView.cpp @@ -1666,7 +1666,7 @@ int View::DrawZoneLevel( const Vector& vec, bool hover, double pxns, con ++it; if( it == zitend ) break; auto& srcloc2 = GetSourceLocation( (*it)->srcloc ); - if( srcloc.color != srcloc2.color ) break; + if( srcloc.r != srcloc2.r || srcloc.g != srcloc2.g || srcloc.b != srcloc2.b ) break; const auto nend = GetZoneEnd( **it ); const auto pxnext = ( nend - m_zvStart ) * pxns; if( pxnext - px1 >= MinVisSize * 2 ) break; @@ -2390,7 +2390,8 @@ uint32_t View::GetZoneColor( const Event& ev ) uint32_t View::GetZoneColor( const QueueSourceLocation& srcloc ) { - return srcloc.color != 0 ? ( srcloc.color | 0xFF000000 ) : 0xFFCC5555; + const auto color = srcloc.r | ( srcloc.g << 8 ) | ( srcloc.b << 16 ); + return color != 0 ? ( color | 0xFF000000 ) : 0xFFCC5555; } uint32_t View::GetZoneHighlight( const Event& ev, bool migration )