prosperon/source/engine/debug/debug.c

46 lines
788 B
C

#include "debug.h"
#include "stb_ds.h"
#include "log.h"
#include "sokol/sokol_time.h"
unsigned long long triCount = 0;
void prof_start(struct d_prof *prof)
{
arrsetlen(prof->ms, prof->laps);
}
void prof_reset(struct d_prof *prof)
{
prof->lap = stm_now();
}
float prof_lap_avg(struct d_prof *prof)
{
float avg;
for (int i = 0; i < arrlen(prof->ms); i++)
avg += prof->ms[i];
avg /= arrlen(prof->ms);
return avg;
}
void prof_lap(struct d_prof *prof)
{
if (prof->ms == NULL)
prof_start(prof);
if (arrlen(prof->ms) >= prof->laps) {
YughWarn("Profiled time of %s is avg %g", prof->name, prof_lap_avg(prof));
arrsetlen(prof->ms, 0);
}
uint64_t t = stm_since(prof->lap);
arrput(prof->ms, stm_sec(t));
}
void resetTriangles()
{
triCount = 0;
}