diff options
author | Bartosz Taudul <wolf@nereid.pl> | 2022-07-02 14:49:43 +0300 |
---|---|---|
committer | Bartosz Taudul <wolf@nereid.pl> | 2022-07-02 14:51:50 +0300 |
commit | 44e52183016f78e16bb6542c52ce48776b13f39c (patch) | |
tree | aec0c7f2610040c00ab159be1429f6883f39fcd8 /server/TracyView_Utility.cpp | |
parent | 35f55c781b390cc646b7e024416b8173e4c5ddf1 (diff) |
Extract more utility functions.
Diffstat (limited to 'server/TracyView_Utility.cpp')
-rw-r--r-- | server/TracyView_Utility.cpp | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/server/TracyView_Utility.cpp b/server/TracyView_Utility.cpp index 08b4cb49..32c5727b 100644 --- a/server/TracyView_Utility.cpp +++ b/server/TracyView_Utility.cpp @@ -1,4 +1,5 @@ #include "TracyColor.hpp" +#include "TracyPrint.hpp" #include "TracyView.hpp" namespace tracy @@ -725,4 +726,83 @@ int64_t View::AdjustGpuTime( int64_t time, int64_t begin, int drift ) return time + t / 1000000000 * drift; } +uint64_t View::GetFrameNumber( const FrameData& fd, int i, uint64_t offset ) const +{ + if( fd.name == 0 ) + { + if( offset == 0 ) + { + return i; + } + else + { + return i + offset - 1; + } + } + else + { + return i + 1; + } +} + +const char* View::GetFrameText( const FrameData& fd, int i, uint64_t ftime, uint64_t offset ) const +{ + const auto fnum = GetFrameNumber( fd, i, offset ); + static char buf[1024]; + if( fd.name == 0 ) + { + if( i == 0 ) + { + sprintf( buf, "Tracy init (%s)", TimeToString( ftime ) ); + } + else if( offset == 0 ) + { + sprintf( buf, "Frame %s (%s)", RealToString( fnum ), TimeToString( ftime ) ); + } + else if( i == 1 ) + { + sprintf( buf, "Missed frames (%s)", TimeToString( ftime ) ); + } + else + { + sprintf( buf, "Frame %s (%s)", RealToString( fnum ), TimeToString( ftime ) ); + } + } + else + { + sprintf( buf, "%s %s (%s)", m_worker.GetString( fd.name ), RealToString( fnum ), TimeToString( ftime ) ); + } + return buf; +} + +const char* View::ShortenNamespace( const char* name ) const +{ + if( m_namespace == Namespace::Full ) return name; + if( m_namespace == Namespace::Short ) + { + auto ptr = name; + while( *ptr != '\0' ) ptr++; + while( ptr > name && *ptr != ':' ) ptr--; + if( *ptr == ':' ) ptr++; + return ptr; + } + + static char buf[1024]; + auto dst = buf; + auto ptr = name; + for(;;) + { + auto start = ptr; + while( *ptr != '\0' && *ptr != ':' ) ptr++; + if( *ptr == '\0' ) + { + memcpy( dst, start, ptr - start + 1 ); + return buf; + } + *dst++ = *start; + *dst++ = ':'; + while( *ptr == ':' ) ptr++; + } +} + } |