#[repr(C)]
pub struct retro_perf_callback { pub get_time_usec: retro_perf_get_time_usec_t, pub get_cpu_features: retro_get_cpu_features_t, pub get_perf_counter: retro_perf_get_counter_t, pub perf_register: retro_perf_register_t, pub perf_start: retro_perf_start_t, pub perf_stop: retro_perf_stop_t, pub perf_log: retro_perf_log_t, }
Expand description

For convenience it can be useful to wrap register, start and stop in macros. E.g.: #ifdef LOG_PERFORMANCE #define RETRO_PERFORMANCE_INIT(perf_cb, name) static struct retro_perf_counter name = {#name}; if (!name.registered) perf_cb.perf_register(&(name)) #define RETRO_PERFORMANCE_START(perf_cb, name) perf_cb.perf_start(&(name)) #define RETRO_PERFORMANCE_STOP(perf_cb, name) perf_cb.perf_stop(&(name)) #else … Blank macros … #endif

These can then be used mid-functions around code snippets.

extern struct retro_perf_callback perf_cb; * Somewhere in the core.

void do_some_heavy_work(void) { RETRO_PERFORMANCE_INIT(cb, work_1; RETRO_PERFORMANCE_START(cb, work_1); heavy_work_1(); RETRO_PERFORMANCE_STOP(cb, work_1);

RETRO_PERFORMANCE_INIT(cb, work_2); RETRO_PERFORMANCE_START(cb, work_2); heavy_work_2(); RETRO_PERFORMANCE_STOP(cb, work_2); }

void retro_deinit(void) { perf_cb.perf_log(); * Log all perf counters here for example. }

Fields§

§get_time_usec: retro_perf_get_time_usec_t§get_cpu_features: retro_get_cpu_features_t§get_perf_counter: retro_perf_get_counter_t§perf_register: retro_perf_register_t§perf_start: retro_perf_start_t§perf_stop: retro_perf_stop_t§perf_log: retro_perf_log_t

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.