Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/wolfpld/tracy.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartosz Taudul <wolf@nereid.pl>2022-07-02 14:49:43 +0300
committerBartosz Taudul <wolf@nereid.pl>2022-07-02 14:51:50 +0300
commit44e52183016f78e16bb6542c52ce48776b13f39c (patch)
treeaec0c7f2610040c00ab159be1429f6883f39fcd8 /server/TracyView_Utility.cpp
parent35f55c781b390cc646b7e024416b8173e4c5ddf1 (diff)
Extract more utility functions.
Diffstat (limited to 'server/TracyView_Utility.cpp')
-rw-r--r--server/TracyView_Utility.cpp80
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++;
+ }
+}
+
}