diff --git a/server/TracyUserData.cpp b/server/TracyUserData.cpp index d320c3a3..64dcf47d 100644 --- a/server/TracyUserData.cpp +++ b/server/TracyUserData.cpp @@ -21,7 +21,7 @@ constexpr auto FileAnnotations = "annotations"; constexpr auto FileSourceSubstitutions = "srcsub"; enum : uint32_t { VersionTimeline = 0 }; -enum : uint32_t { VersionOptions = 5 }; +enum : uint32_t { VersionOptions = 6 }; enum : uint32_t { VersionAnnotations = 0 }; enum : uint32_t { VersionSourceSubstitutions = 0 }; @@ -108,6 +108,7 @@ void UserData::LoadState( ViewData& data ) fread( &data.drawCpuUsageGraph, 1, sizeof( data.drawCpuUsageGraph ), f ); fread( &data.drawSamples, 1, sizeof( data.drawSamples ), f ); fread( &data.dynamicColors, 1, sizeof( data.dynamicColors ), f ); + fread( &data.forceColors, 1, sizeof( data.forceColors ), f ); fread( &data.ghostZones, 1, sizeof( data.ghostZones ), f ); } fclose( f ); @@ -149,6 +150,7 @@ void UserData::SaveState( const ViewData& data ) fwrite( &data.drawCpuUsageGraph, 1, sizeof( data.drawCpuUsageGraph ), f ); fwrite( &data.drawSamples, 1, sizeof( data.drawSamples ), f ); fwrite( &data.dynamicColors, 1, sizeof( data.dynamicColors ), f ); + fwrite( &data.forceColors, 1, sizeof( data.forceColors ), f ); fwrite( &data.ghostZones, 1, sizeof( data.ghostZones ), f ); fclose( f ); } diff --git a/server/TracyView.cpp b/server/TracyView.cpp index 1fcd2bd3..9fe7c66d 100644 --- a/server/TracyView.cpp +++ b/server/TracyView.cpp @@ -8252,6 +8252,9 @@ void View::DrawOptions() int ival = m_vd.dynamicColors; ImGui::TextUnformatted( ICON_FA_PALETTE " Zone colors" ); + ImGui::SameLine(); + bool forceColors = m_vd.forceColors; + if( SmallCheckbox( "Ignore custom", &forceColors ) ) m_vd.forceColors = forceColors; ImGui::Indent(); ImGui::PushStyleVar( ImGuiStyleVar_FramePadding, ImVec2( 0, 0 ) ); ImGui::RadioButton( "Static", &ival, 0 ); @@ -16133,7 +16136,7 @@ uint32_t View::GetRawSrcLocColor( const SourceLocation& srcloc, int depth ) uint32_t View::GetSrcLocColor( const SourceLocation& srcloc, int depth ) { const auto color = srcloc.color; - if( color != 0 ) return color | 0xFF000000; + if( color != 0 && !m_vd.forceColors ) return color | 0xFF000000; if( m_vd.dynamicColors == 0 ) return 0xFFCC5555; return GetRawSrcLocColor( srcloc, depth ); } @@ -16143,7 +16146,7 @@ uint32_t View::GetRawZoneColor( const ZoneEvent& ev, uint64_t thread, int depth const auto sl = ev.SrcLoc(); const auto& srcloc = m_worker.GetSourceLocation( sl ); const auto color = srcloc.color; - if( color != 0 ) return color | 0xFF000000; + if( color != 0 && !m_vd.forceColors ) return color | 0xFF000000; switch( m_vd.dynamicColors ) { case 0: diff --git a/server/TracyViewData.hpp b/server/TracyViewData.hpp index 7adff222..f11ce54a 100644 --- a/server/TracyViewData.hpp +++ b/server/TracyViewData.hpp @@ -52,6 +52,7 @@ struct ViewData uint8_t drawCpuUsageGraph = true; uint8_t drawSamples = true; uint8_t dynamicColors = 1; + uint8_t forceColors = false; uint8_t ghostZones = true; };