shithub: ft²

ref: 62bbc39e91d7f624ecf806d8b1b462c28ba206d5
dir: /src/ft2_hpc.h/

View raw version
#ifndef _ft2_hpc_h_
#define _ft2_hpc_h_

#include <stdint.h>
#include <stdbool.h>

typedef struct
{
	uint64_t freq64;
	double dFreqMulMicro, dFreqMulMs;
} hpcFreq_t;

typedef struct
{
	uint64_t durationInt, durationFrac;
	uint64_t endTimeInt, endTimeFrac;
	uint64_t frameCounter, resetFrame;
} hpc_t;

extern hpcFreq_t hpcFreq;

void hpc_Init(void);
void hpc_SetDurationInHz(hpc_t *hpc, double dHz); // dHz = max 8191.999inf Hz (0.12ms)
void hpc_SetDurationInMs(hpc_t *hpc, double dMs); // dMs = minimum 0.12208521548 ms
void hpc_ResetCounters(hpc_t *hpc);
void hpc_Wait(hpc_t *hpc);

#endif