/*
* Schedule something to be ran now, freed later. Checks in with engine status
*/
-static void vg_loader_step( void( *fn_load )(void), void( *fn_free )(void) )
-{
+static void _vg_loader_step( void( *fn_load )(void), void( *fn_free )(void),
+ const char *alias ){
+
+ u64 t0 = SDL_GetPerformanceCounter();
+ vg.time_hp_last = vg.time_hp;
+
if( fn_load )
fn_load();
+ u64 udt = SDL_GetPerformanceCounter() - t0;
+ double dt = (double)udt / (double)SDL_GetPerformanceFrequency();
+ vg_info( "ltime [%p] %s: %fs\n", fn_load, alias, dt );
+
if( fn_free ){
struct loader_free_step step;
step.fn_free = fn_free;
/* TODO: There was a quit checker here, re-add this? */
}
+#define vg_loader_step( FN, FN_FREE )\
+ _vg_loader_step( FN, FN_FREE, #FN )
+
#endif /* VG_LOADER_H */