From 016f7ac4b6bc050d66f10b62abb82741cf889712 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Sun, 17 Mar 2019 16:17:47 +0100 Subject: [PATCH] Allow retrieval of zone's thread data. --- server/TracyView.cpp | 12 +++++++++--- server/TracyView.hpp | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/server/TracyView.cpp b/server/TracyView.cpp index 3b8be079..93f7e44e 100644 --- a/server/TracyView.cpp +++ b/server/TracyView.cpp @@ -9824,7 +9824,7 @@ const GpuEvent* View::GetZoneParent( const GpuEvent& zone ) const return nullptr; } -uint64_t View::GetZoneThread( const ZoneEvent& zone ) const +const ThreadData* View::GetZoneThreadData( const ZoneEvent& zone ) const { for( const auto& thread : m_worker.GetThreadData() ) { @@ -9835,12 +9835,18 @@ uint64_t View::GetZoneThread( const ZoneEvent& zone ) const auto it = std::upper_bound( timeline->begin(), timeline->end(), zone.start, [] ( const auto& l, const auto& r ) { return l < r->start; } ); if( it != timeline->begin() ) --it; if( zone.end >= 0 && (*it)->start > zone.end ) break; - if( *it == &zone ) return thread->id; + if( *it == &zone ) return thread; if( (*it)->child < 0 ) break; timeline = &m_worker.GetZoneChildren( (*it)->child ); } } - return 0; + return nullptr; +} + +uint64_t View::GetZoneThread( const ZoneEvent& zone ) const +{ + auto threadData = GetZoneThreadData( zone ); + return threadData ? threadData->id : 0; } uint64_t View::GetZoneThread( const GpuEvent& zone ) const diff --git a/server/TracyView.hpp b/server/TracyView.hpp index c09d16ed..46c4b4e8 100644 --- a/server/TracyView.hpp +++ b/server/TracyView.hpp @@ -162,6 +162,7 @@ private: const ZoneEvent* GetZoneParent( const ZoneEvent& zone ) const; const GpuEvent* GetZoneParent( const GpuEvent& zone ) const; + const ThreadData* GetZoneThreadData( const ZoneEvent& zone ) const; uint64_t GetZoneThread( const ZoneEvent& zone ) const; uint64_t GetZoneThread( const GpuEvent& zone ) const; const GpuCtxData* GetZoneCtx( const GpuEvent& zone ) const;