From 48e08acb62aa6d097159fd2b02b82bb266fea047 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Mon, 24 Jun 2019 20:42:52 +0200 Subject: [PATCH] Add C API for frame markup. --- TracyC.h | 18 ++++++++++++++++++ client/TracyProfiler.cpp | 20 ++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/TracyC.h b/TracyC.h index 762c3ae5..8e8271c6 100644 --- a/TracyC.h +++ b/TracyC.h @@ -25,6 +25,12 @@ typedef const void* TracyCZoneCtx; #define TracyCAlloc(x,y) #define TracyCFree(x) +#define TracyCFrameMark +#define TracyCFrameMarkNamed(x) +#define TracyCFrameMarkStart(x) +#define TracyCFrameMarkEnd(x) +#define TracyCFrameImage(x,y,z,w,a) + #else #ifndef TracyConcat @@ -88,6 +94,18 @@ void ___tracy_emit_memory_free_callstack( const void* ptr, int depth ); # define TracyCFree( ptr ) ___tracy_emit_memory_free( ptr ); #endif + +void ___tracy_emit_frame_mark( const char* name ); +void ___tracy_emit_frame_mark_start( const char* name ); +void ___tracy_emit_frame_mark_end( const char* name ); +void ___tracy_emit_frame_image( void* image, uint16_t w, uint16_t h, uint8_t offset, int flip ); + +#define TracyCFrameMark ___tracy_emit_frame_mark( 0 ); +#define TracyCFrameMarkNamed( name ) ___tracy_emit_frame_mark( name ); +#define TracyCFrameMarkStart( name ) ___tracy_emit_frame_mark_start( name ); +#define TracyCFrameMarkEnd( name ) ___tracy_emit_frame_mark_end( name ); +#define TracyCFrameImage( image, width, height, offset, flip ) ___tracy_emit_frame_image( image, width, height, offset, flip ); + #endif #ifdef __cplusplus diff --git a/client/TracyProfiler.cpp b/client/TracyProfiler.cpp index 2114233d..8f51b67d 100644 --- a/client/TracyProfiler.cpp +++ b/client/TracyProfiler.cpp @@ -2264,6 +2264,26 @@ void ___tracy_emit_memory_free_callstack( const void* ptr, int depth ) tracy::Profiler::MemFreeCallstack( ptr, depth ); } +void ___tracy_emit_frame_mark( const char* name ) +{ + tracy::Profiler::SendFrameMark( name ); +} + +void ___tracy_emit_frame_mark_start( const char* name ) +{ + tracy::Profiler::SendFrameMark( name, tracy::QueueType::FrameMarkMsgStart ); +} + +void ___tracy_emit_frame_mark_end( const char* name ) +{ + tracy::Profiler::SendFrameMark( name, tracy::QueueType::FrameMarkMsgEnd ); +} + +void ___tracy_emit_frame_image( void* image, uint16_t w, uint16_t h, uint8_t offset, int flip ) +{ + tracy::Profiler::SendFrameImage( image, w, h, offset, flip ); +} + #ifdef __cplusplus } #endif