2024-09-18 06:29:11 +00:00
|
|
|
|
/*
|
|
|
|
|
* Pulled from Tracey profiler PR
|
|
|
|
|
* @see https://github.com/HaxeFoundation/haxe/pull/11772
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
package cpp.vm.tracy;
|
|
|
|
|
|
|
|
|
|
#if (!HXCPP_TRACY)
|
|
|
|
|
#error "This class cannot be used without -D HXCPP_TRACY"
|
|
|
|
|
#end
|
|
|
|
|
enum abstract PlotFormatType(cpp.UInt8) from cpp.UInt8 to cpp.UInt8
|
|
|
|
|
{
|
|
|
|
|
var Number = 0;
|
|
|
|
|
var Memory = 1;
|
|
|
|
|
var Percentage = 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@:include('hx/TelemetryTracy.h')
|
|
|
|
|
extern class Native_TracyProfiler
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
Mark a frame. Call this at the end of each frame loop.
|
|
|
|
|
**/
|
|
|
|
|
@:native('::__hxcpp_tracy_framemark')
|
|
|
|
|
public static function frameMark():Void;
|
|
|
|
|
|
2025-06-26 02:14:48 +00:00
|
|
|
|
/**
|
|
|
|
|
Mark a named frame. Allows creating multiple frame sets for different timing categories.
|
|
|
|
|
Each unique name creates a separate frame set in the Tracy timeline.
|
|
|
|
|
**/
|
|
|
|
|
@:native('::__hxcpp_tracy_framemark_named')
|
|
|
|
|
public static function frameMarkNamed(_name:String):Void;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
Mark the start of a discontinuous frame. Use for periodic work with gaps.
|
|
|
|
|
Must be paired with frameMarkEnd() using the same name.
|
|
|
|
|
**/
|
|
|
|
|
@:native('::__hxcpp_tracy_framemark_start')
|
|
|
|
|
public static function frameMarkStart(_name:String):Void;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
Mark the end of a discontinuous frame. Use for periodic work with gaps.
|
|
|
|
|
Must be paired with frameMarkStart() using the same name.
|
|
|
|
|
**/
|
|
|
|
|
@:native('::__hxcpp_tracy_framemark_end')
|
|
|
|
|
public static function frameMarkEnd(_name:String):Void;
|
|
|
|
|
|
2024-09-18 06:29:11 +00:00
|
|
|
|
/**
|
|
|
|
|
Print a message into Tracy's log.
|
|
|
|
|
**/
|
|
|
|
|
@:native('::__hxcpp_tracy_message')
|
|
|
|
|
public static function message(_msg:String, ?_color:Int = 0x000000):Void;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
Tracy can collect additional information about the profiled application,
|
|
|
|
|
which will be available in the trace description.
|
|
|
|
|
This can include data such as the source repository revision,
|
|
|
|
|
the application’s environment (dev/prod), etc.
|
|
|
|
|
**/
|
|
|
|
|
@:native('::__hxcpp_tracy_message_app_info')
|
|
|
|
|
public static function messageAppInfo(_info:String):Void;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
Plot a named value to tracy. This will generate a graph in the profiler for you.
|
|
|
|
|
**/
|
|
|
|
|
@:native('::__hxcpp_tracy_plot')
|
|
|
|
|
public static function plot(_name:String, _val:cpp.Float32):Void;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
Configure how values are plotted and displayed.
|
|
|
|
|
**/
|
|
|
|
|
@:native('::__hxcpp_tracy_plot_config')
|
|
|
|
|
public static function plotConfig(_name:String, _format:PlotFormatType, ?_step:Bool = false, ?_fill:Bool = false, ?_color:Int = 0x000000):Void;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
Set a name for the current thread this function is called in. Supply an optional groupHint so threads become grouped in Tracy's UI.
|
|
|
|
|
**/
|
|
|
|
|
@:native('::__hxcpp_tracy_set_thread_name_and_group')
|
|
|
|
|
public static function setThreadName(_name:String, ?_groupHint:Int = 1):Void;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
Create a custom named scoped zone in your code.
|
|
|
|
|
**/
|
|
|
|
|
@:native('HXCPP_TRACY_ZONE')
|
|
|
|
|
public static function zoneScoped(_name:String):Void;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#if (scriptable || cppia)
|
|
|
|
|
class Cppia_TracyProfiler
|
|
|
|
|
{
|
|
|
|
|
@:inheritDoc(cpp.vm.tracy.Native_TracyProfiler.frameMark)
|
|
|
|
|
public static function frameMark()
|
|
|
|
|
Native_TracyProfiler.frameMark();
|
|
|
|
|
|
2025-06-26 02:14:48 +00:00
|
|
|
|
@:inheritDoc(cpp.vm.tracy.Native_TracyProfiler.frameMarkNamed)
|
|
|
|
|
public static function frameMarkNamed(_name:String)
|
|
|
|
|
Native_TracyProfiler.frameMarkNamed(_name);
|
|
|
|
|
|
|
|
|
|
@:inheritDoc(cpp.vm.tracy.Native_TracyProfiler.frameMarkStart)
|
|
|
|
|
public static function frameMarkStart(_name:String)
|
|
|
|
|
Native_TracyProfiler.frameMarkStart(_name);
|
|
|
|
|
|
|
|
|
|
@:inheritDoc(cpp.vm.tracy.Native_TracyProfiler.frameMarkEnd)
|
|
|
|
|
public static function frameMarkEnd(_name:String)
|
|
|
|
|
Native_TracyProfiler.frameMarkEnd(_name);
|
|
|
|
|
|
2024-09-18 06:29:11 +00:00
|
|
|
|
@:inheritDoc(cpp.vm.tracy.Native_TracyProfiler.message)
|
|
|
|
|
public static function message(_msg:String, ?_color:Int = 0x000000)
|
|
|
|
|
Native_TracyProfiler.message(_msg, _color);
|
|
|
|
|
|
|
|
|
|
@:inheritDoc(cpp.vm.tracy.Native_TracyProfiler.messageAppInfo)
|
|
|
|
|
public static function messageAppInfo(_info:String)
|
|
|
|
|
Native_TracyProfiler.messageAppInfo(_info);
|
|
|
|
|
|
|
|
|
|
@:inheritDoc(cpp.vm.tracy.Native_TracyProfiler.plot)
|
|
|
|
|
public static function plot(_name:String, _val:Float)
|
|
|
|
|
Native_TracyProfiler.plot(_name, _val);
|
|
|
|
|
|
|
|
|
|
@:inheritDoc(cpp.vm.tracy.Native_TracyProfiler.plotConfig)
|
|
|
|
|
public static function plotConfig(_name:String, _format:PlotFormatType, ?_step:Bool = false, ?_fill:Bool = false, ?_color:Int = 0x000000)
|
|
|
|
|
Native_TracyProfiler.plotConfig(_name, _format, _step, _fill, _color);
|
|
|
|
|
|
|
|
|
|
@:inheritDoc(cpp.vm.tracy.Native_TracyProfiler.setThreadName)
|
|
|
|
|
public static function setThreadName(_name:String, ?_groupHint:Int = 1)
|
|
|
|
|
Native_TracyProfiler.setThreadName(_name, _groupHint);
|
|
|
|
|
|
|
|
|
|
@:inheritDoc(cpp.vm.tracy.Native_TracyProfiler.zoneScoped)
|
|
|
|
|
public static function zoneScoped(_name:String)
|
|
|
|
|
Native_TracyProfiler.zoneScoped(_name);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
typedef TracyProfiler = Cppia_TracyProfiler;
|
|
|
|
|
#else
|
|
|
|
|
typedef TracyProfiler = Native_TracyProfiler;
|
|
|
|
|
#end
|