mirror of
https://github.com/wolfpld/tracy
synced 2025-04-29 12:23:53 +00:00
Merge pull request #265 from nagisa/nagisa/manual-lifetime-for-c
Expose TRACY_MANUAL_LIFETIME APIs to C API clients
This commit is contained in:
commit
0b03d7b2ad
6
TracyC.h
6
TracyC.h
@ -101,6 +101,12 @@ struct ___tracy_c_zone_context
|
|||||||
// This struct, as visible to user, is immutable, so treat it as if const was declared here.
|
// This struct, as visible to user, is immutable, so treat it as if const was declared here.
|
||||||
typedef /*const*/ struct ___tracy_c_zone_context TracyCZoneCtx;
|
typedef /*const*/ struct ___tracy_c_zone_context TracyCZoneCtx;
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef TRACY_MANUAL_LIFETIME
|
||||||
|
TRACY_API void ___tracy_startup_profiler(void);
|
||||||
|
TRACY_API void ___tracy_shutdown_profiler(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
TRACY_API uint64_t ___tracy_alloc_srcloc( uint32_t line, const char* source, size_t sourceSz, const char* function, size_t functionSz );
|
TRACY_API uint64_t ___tracy_alloc_srcloc( uint32_t line, const char* source, size_t sourceSz, const char* function, size_t functionSz );
|
||||||
TRACY_API uint64_t ___tracy_alloc_srcloc_name( uint32_t line, const char* source, size_t sourceSz, const char* function, size_t functionSz, const char* name, size_t nameSz );
|
TRACY_API uint64_t ___tracy_alloc_srcloc_name( uint32_t line, const char* source, size_t sourceSz, const char* function, size_t functionSz, const char* name, size_t nameSz );
|
||||||
|
|
||||||
|
@ -3602,6 +3602,18 @@ TRACY_API uint64_t ___tracy_alloc_srcloc_name( uint32_t line, const char* source
|
|||||||
return tracy::Profiler::AllocSourceLocation( line, source, sourceSz, function, functionSz, name, nameSz );
|
return tracy::Profiler::AllocSourceLocation( line, source, sourceSz, function, functionSz, name, nameSz );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ifdef TRACY_MANUAL_LIFETIME
|
||||||
|
TRACY_API void ___tracy_startup_profiler( void )
|
||||||
|
{
|
||||||
|
tracy::StartupProfiler();
|
||||||
|
}
|
||||||
|
|
||||||
|
TRACY_API void ___tracy_shutdown_profiler( void )
|
||||||
|
{
|
||||||
|
tracy::ShutdownProfiler();
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -1793,7 +1793,8 @@ You can collect call stacks of zones and memory allocation events, as described
|
|||||||
Tracy C API exposes functions with the \texttt{\_\_\_tracy} prefix that may be used to write bindings to other programming languages. Most of the functions available are a counterpart to macros described in section~\ref{capi}. Some functions do not have macro equivalents and are dedicated expressly for binding implementation purposes. This includes the following:
|
Tracy C API exposes functions with the \texttt{\_\_\_tracy} prefix that may be used to write bindings to other programming languages. Most of the functions available are a counterpart to macros described in section~\ref{capi}. Some functions do not have macro equivalents and are dedicated expressly for binding implementation purposes. This includes the following:
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \texttt{\_\_\_tracy\_init\_thread(void)}
|
\item \texttt{\_\_\_tracy\_startup\_profiler(void)}
|
||||||
|
\item \texttt{\_\_\_tracy\_shutdown\_profiler(void)}
|
||||||
\item \texttt{\_\_\_tracy\_alloc\_srcloc(uint32\_t line, const char* source, size\_t sourceSz, const char* function, size\_t functionSz)}
|
\item \texttt{\_\_\_tracy\_alloc\_srcloc(uint32\_t line, const char* source, size\_t sourceSz, const char* function, size\_t functionSz)}
|
||||||
\item \texttt{\_\_\_tracy\_alloc\_srcloc\_name(uint32\_t line, const char* source, size\_t sourceSz, const char* function, size\_t functionSz, const char* name, size\_t nameSz)}
|
\item \texttt{\_\_\_tracy\_alloc\_srcloc\_name(uint32\_t line, const char* source, size\_t sourceSz, const char* function, size\_t functionSz, const char* name, size\_t nameSz)}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
@ -1809,11 +1810,6 @@ location}. As these functions do not require for the provided string data to be
|
|||||||
return, calling code is free to deallocate them at any time afterwards. This way the string
|
return, calling code is free to deallocate them at any time afterwards. This way the string
|
||||||
lifetime requirements described in section~\ref{textstrings} are relaxed.
|
lifetime requirements described in section~\ref{textstrings} are relaxed.
|
||||||
|
|
||||||
Before the \texttt{\_\_\_tracy\_alloc\_*} functions are called on a non-main thread for the first
|
|
||||||
time, care should be taken to ensure that \texttt{\_\_\_tracy\_init\_thread} has been called first.
|
|
||||||
The \texttt{\_\_\_tracy\_init\_thread} function initializes per-thread structures Tracy uses and
|
|
||||||
can be safely called multiple times.
|
|
||||||
|
|
||||||
The \texttt{uint64\_t} return value from allocation functions must be passed to one of the zone
|
The \texttt{uint64\_t} return value from allocation functions must be passed to one of the zone
|
||||||
begin functions:
|
begin functions:
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user