package grime import "base:runtime" import "core:prof/spall" SpallProfiler :: struct { ctx : spall.Context, buffer : spall.Buffer, } @(private) Module_Context : ^SpallProfiler set_profiler_module_context :: #force_inline proc "contextless" ( ctx : ^SpallProfiler ) { Module_Context = ctx } DISABLE_PROFILING :: true @(deferred_none = profile_end, disabled = DISABLE_PROFILING) profile :: #force_inline proc "contextless" ( name : string, loc := #caller_location ) { spall._buffer_begin( & Module_Context.ctx, & Module_Context.buffer, name, "", loc ) } @(disabled = DISABLE_PROFILING) profile_begin :: #force_inline proc "contextless" ( name : string, loc := #caller_location ) { spall._buffer_begin( & Module_Context.ctx, & Module_Context.buffer, name, "", loc ) } @(disabled = DISABLE_PROFILING) profile_end :: #force_inline proc "contextless" () { spall._buffer_end( & Module_Context.ctx, & Module_Context.buffer) }