gutter_runner/bindings.odin
sergeypdev e60e9b99af Squashed 'libs/tracy/' content from commit 4925f2b7
git-subtree-dir: libs/tracy
git-subtree-split: 4925f2b7240ebf4386faaae433993db6d0b3f956
2025-01-10 01:29:33 +04:00

173 lines
9.1 KiB
Odin

package tracy
import "core:c"
when ODIN_OS == .Darwin do foreign import tracy "tracy.dylib"
when ODIN_OS == .Windows do foreign import tracy "tracy.lib"
when ODIN_OS == .Linux do foreign import tracy "tracy.so"
TracyPlotFormatEnum :: enum i32
{
TracyPlotFormatNumber,
TracyPlotFormatMemory,
TracyPlotFormatPercentage,
TracyPlotFormatWatt
}
___tracy_source_location_data :: struct {
name: cstring,
function: cstring,
file: cstring,
line: u32,
color: u32,
}
___tracy_c_zone_context :: struct {
id: u32,
active: b32,
}
___tracy_gpu_time_data :: struct {
gpuTime: i64,
queryId: u16,
_context: u8, // NOTE(oskar): `context` is a reserved identifier in Odin.
}
___tracy_gpu_zone_begin_data :: struct {
srcloc: u64,
queryId: u16,
_context: u8, // NOTE(oskar): `context` is a reserved identifier in Odin.
}
___tracy_gpu_zone_begin_callstack_data :: struct {
srcloc: u64,
depth: i32,
queryId: u16,
_context: u8, // NOTE(oskar): `context` is a reserved identifier in Odin.
}
___tracy_gpu_zone_end_data :: struct {
queryId: u16,
_context: u8, // NOTE(oskar): `context` is a reserved identifier in Odin.
}
___tracy_gpu_new_context_data :: struct {
gpuTime: i64,
period: f32,
_context: u8, // NOTE(oskar): `context` is a reserved identifier in Odin.
flags: u8,
type: u8,
}
___tracy_gpu_context_name_data :: struct {
_context: u8, // NOTE(oskar): `context` is a reserved identifier in Odin.
name: cstring,
len: u16,
}
___tracy_gpu_calibration_data :: struct {
gpuTime: i64,
cpuDelta: i64,
_context: u8, // NOTE(oskar): `context` is a reserved identifier in Odin.
}
___tracy_gpu_time_sync_data :: struct {
gpuTime: i64,
_context: u8, // NOTE(oskar): `context` is a reserved identifier in Odin.
};
__tracy_lockable_context_data :: struct {} // NOTE(oskar): opaque
when #config(TRACY_MANUAL_LIFETIME, false) {
@(default_calling_convention="c")
foreign tracy {
___tracy_startup_profiler :: proc() ---
___tracy_shutdown_profiler :: proc() ---
___tracy_profiler_started :: proc() -> b32 ---
}
}
@(default_calling_convention="c")
foreign tracy {
___tracy_set_thread_name :: proc( name: cstring ) ---
___tracy_alloc_srcloc :: proc( line: u32, source: cstring, sourceSz: c.size_t, function: cstring, functionSz: c.size_t, color: u32 = 0 ) -> u64 ---
___tracy_alloc_srcloc_name :: proc( line: u32, source: cstring, sourceSz: c.size_t, function: cstring, functionSz: c.size_t, name: cstring, nameSz: c.size_t, color: u32 = 0 ) -> u64 ---
___tracy_emit_zone_begin :: proc( srcloc: ^___tracy_source_location_data, active: b32 ) -> ___tracy_c_zone_context ---
___tracy_emit_zone_begin_callstack :: proc( srcloc: ^___tracy_source_location_data, depth: i32, active: b32 ) -> ___tracy_c_zone_context ---
___tracy_emit_zone_begin_alloc :: proc( srcloc: u64, active: b32 ) -> ___tracy_c_zone_context ---
___tracy_emit_zone_begin_alloc_callstack :: proc( srcloc: u64, depth: i32, active: b32 ) -> ___tracy_c_zone_context ---
___tracy_emit_zone_end :: proc( ctx: ___tracy_c_zone_context ) ---
___tracy_emit_zone_text :: proc( ctx: ___tracy_c_zone_context, txt: cstring, size: c.size_t ) ---
___tracy_emit_zone_name :: proc( ctx: ___tracy_c_zone_context, txt: cstring, size: c.size_t ) ---
___tracy_emit_zone_color :: proc( ctx: ___tracy_c_zone_context, color: u32 ) ---
___tracy_emit_zone_value :: proc( ctx: ___tracy_c_zone_context, value: u64 ) ---
___tracy_emit_gpu_zone_begin :: proc( ___tracy_gpu_zone_begin_data ) ---
___tracy_emit_gpu_zone_begin_callstack :: proc( ___tracy_gpu_zone_begin_callstack_data ) ---
___tracy_emit_gpu_zone_begin_alloc :: proc( ___tracy_gpu_zone_begin_data ) ---
___tracy_emit_gpu_zone_begin_alloc_callstack :: proc( ___tracy_gpu_zone_begin_callstack_data ) ---
___tracy_emit_gpu_zone_end :: proc( ___tracy_gpu_zone_end_data ) ---
___tracy_emit_gpu_time :: proc( ___tracy_gpu_time_data ) ---
___tracy_emit_gpu_new_context :: proc( ___tracy_gpu_new_context_data ) ---
___tracy_emit_gpu_context_name :: proc( ___tracy_gpu_context_name_data ) ---
___tracy_emit_gpu_calibration :: proc( ___tracy_gpu_calibration_data ) ---
___tracy_emit_gpu_time_sync :: proc( ___tracy_gpu_time_sync_data ) ---
___tracy_emit_gpu_zone_begin_serial :: proc( ___tracy_gpu_zone_begin_data ) ---
___tracy_emit_gpu_zone_begin_callstack_serial :: proc( ___tracy_gpu_zone_begin_callstack_data ) ---
___tracy_emit_gpu_zone_begin_alloc_serial :: proc( ___tracy_gpu_zone_begin_data ) ---
___tracy_emit_gpu_zone_begin_alloc_callstack_serial :: proc( ___tracy_gpu_zone_begin_callstack_data ) ---
___tracy_emit_gpu_zone_end_serial :: proc( ___tracy_gpu_zone_end_data ) ---
___tracy_emit_gpu_time_serial :: proc( ___tracy_gpu_time_data ) ---
___tracy_emit_gpu_new_context_serial :: proc( ___tracy_gpu_new_context_data ) ---
___tracy_emit_gpu_context_name_serial :: proc( ___tracy_gpu_context_name_data ) ---
___tracy_emit_gpu_calibration_serial :: proc( ___tracy_gpu_calibration_data ) ---
___tracy_emit_gpu_time_sync_serial :: proc( ___tracy_gpu_time_sync_data ) ---
___tracy_connected :: proc() -> b32 ---
___tracy_emit_memory_alloc :: proc( ptr: rawptr, size: c.size_t, secure: b32 ) ---
___tracy_emit_memory_alloc_callstack :: proc( ptr: rawptr, size: c.size_t, depth: i32, secure: b32 ) ---
___tracy_emit_memory_free :: proc( ptr: rawptr, secure: b32 ) ---
___tracy_emit_memory_free_callstack :: proc( ptr: rawptr, depth: i32, secure: b32 ) ---
___tracy_emit_memory_alloc_named :: proc( ptr: rawptr, size: c.size_t, secure: b32, name: cstring ) ---
___tracy_emit_memory_alloc_callstack_named :: proc( ptr: rawptr, size: c.size_t, depth: i32, secure: b32, name: cstring ) ---
___tracy_emit_memory_free_named :: proc( ptr: rawptr, secure: b32, name: cstring ) ---
___tracy_emit_memory_free_callstack_named :: proc( ptr: rawptr, depth: i32, secure: b32, name: cstring ) ---
___tracy_emit_message :: proc( txt: cstring, size: c.size_t, callstack: i32 ) ---
___tracy_emit_messageL :: proc( txt: cstring, callstack: i32 ) ---
___tracy_emit_messageC :: proc( txt: cstring, size: c.size_t, color: u32, callstack: i32 ) ---
___tracy_emit_messageLC :: proc( txt: cstring, color: u32, callstack: i32 ) ---
___tracy_emit_frame_mark :: proc( name: cstring ) ---
___tracy_emit_frame_mark_start :: proc( name: cstring ) ---
___tracy_emit_frame_mark_end :: proc( name: cstring ) ---
___tracy_emit_frame_image :: proc( image: rawptr, w, h: u16, offset: u8, flip: b32 ) ---
___tracy_emit_plot :: proc( name: cstring, val: f64 ) ---
___tracy_emit_plot_float :: proc( name: cstring, val: f32 ) ---
___tracy_emit_plot_int :: proc( name: cstring, val: i64 ) ---
___tracy_emit_plot_config :: proc( name: cstring, type: TracyPlotFormatEnum, step, fill: b32, color: u32 ) ---
___tracy_emit_message_appinfo :: proc( txt: cstring, size: c.size_t ) ---
___tracy_announce_lockable_ctx :: proc( srcloc: ^___tracy_source_location_data ) -> ^__tracy_lockable_context_data ---
___tracy_terminate_lockable_ctx :: proc( lockdata: ^__tracy_lockable_context_data ) ---
___tracy_before_lock_lockable_ctx :: proc( lockdata: ^__tracy_lockable_context_data ) -> b32 ---
___tracy_after_lock_lockable_ctx :: proc( lockdata: ^__tracy_lockable_context_data ) ---
___tracy_after_unlock_lockable_ctx :: proc( lockdata: ^__tracy_lockable_context_data ) ---
___tracy_after_try_lock_lockable_ctx :: proc( lockdata: ^__tracy_lockable_context_data, acquired: b32 ) ---
___tracy_mark_lockable_ctx :: proc( lockdata: ^__tracy_lockable_context_data, srcloc: ^___tracy_source_location_data ) ---
___tracy_custom_name_lockable_ctx :: proc( lockdata: ^__tracy_lockable_context_data, name: cstring, nameSz: c.size_t ) ---
}
when #config(TRACY_FIBERS, false) {
@(default_calling_convention="c")
foreign tracy {
___tracy_fiber_enter :: proc( fiber: cstring ) ---
___tracy_fiber_leave :: proc() ---
}
}