#include "time_utils.h"
#include <stdint.h>
#include "SDL3/SDL_timer.h"
#include "commons.h"
#include "errors_common.h"

#define NS_TO_S(time) (time/1000000000)
double g_last_time = 0.0;

rse_err_t time_init(void)
{
    g_last_time = NS_TO_S((double)SDL_GetTicksNS());

    return RSE_ERROR_NO_ERROR;
}

double time_get_sec_from_start(void)
{
    return NS_TO_S((double)SDL_GetTicksNS());
}

void time_update(void)
{
    g_last_time = NS_TO_S((double)SDL_GetTicksNS());
}

double time_get_dt(void)
{
    float time = NS_TO_S((double)SDL_GetTicksNS());
    float dt = time - g_last_time;

    return dt;
}
