diff --git a/server/TracyUtility.cpp b/server/TracyUtility.cpp index 0c230035..3138086d 100644 --- a/server/TracyUtility.cpp +++ b/server/TracyUtility.cpp @@ -1,6 +1,9 @@ #include +#include "TracyColor.hpp" +#include "TracyPrint.hpp" #include "TracyUtility.hpp" +#include "TracyWorker.hpp" namespace tracy { @@ -137,4 +140,42 @@ void TooltipNormalizedName( const char* name, const char* normalized ) } } +uint32_t GetPlotColor( const PlotData& plot, const Worker& worker ) +{ + switch( plot.type ) + { + case PlotType::User: + if( plot.color != 0 ) return plot.color | 0xFF000000; + return GetHsvColor( charutil::hash( worker.GetString( plot.name ) ), -10 ); + case PlotType::Memory: + return 0xFF2266CC; + case PlotType::SysTime: + return 0xFFBAB220; + default: + assert( false ); + return 0; + } +} + +const char* FormatPlotValue( double val, PlotValueFormatting format ) +{ + static char buf[64]; + switch( format ) + { + case PlotValueFormatting::Number: + return RealToString( val ); + break; + case PlotValueFormatting::Memory: + return MemSizeToString( val ); + break; + case PlotValueFormatting::Percentage: + sprintf( buf, "%.2f%%", val ); + break; + default: + assert( false ); + break; + } + return buf; +} + } diff --git a/server/TracyUtility.hpp b/server/TracyUtility.hpp index dae771f8..c752bae6 100644 --- a/server/TracyUtility.hpp +++ b/server/TracyUtility.hpp @@ -4,10 +4,13 @@ #include #include "imgui.h" +#include "TracyEvent.hpp" namespace tracy { +class Worker; + enum class ShortenName : uint8_t { Never, @@ -22,6 +25,9 @@ void TooltipNormalizedName( const char* name, const char* normalized ); static inline const char* ShortenZoneName( ShortenName type, const char* name ) { ImVec2 tsz = {}; return ShortenZoneName( type, name, tsz, 0 ); } +uint32_t GetPlotColor( const PlotData& plot, const Worker& worker ); +const char* FormatPlotValue( double val, PlotValueFormatting format ); + } #endif